Skip to content

janestreet/zarith_stubs_js

Repository files navigation

Zarith Stubs JS

Zarith is an OCaml library that implements common operations over arbitrary-precision integers and rationals. It is implemented via a C api that primarily calls out to Gnu Multiple Precision Arithmetic Library. Because of that C API, Zarith could not be compiled via Js_of_ocaml until now.

Zarith Stubs JS is a reimplementation of the native C functions in JavaScript. It makes extensive use of peterolson/BigInteger.js as a shim for browser BigInt functionality and also for the implementations of many numerical algorithms.

How to use it ?

In order to use zarith with js_of_ocaml, just provide the javascript runtime files to the js_of_ocaml compiler and use zarith as you would normally do.

In practice,

  • if you use dune to build your project, just add zarith_stubs_js as a library dependency.
  • if you don't use dune, you need to find a way to pass both biginteger.js and runtime.js files to the js_of_ocaml compiler command line.