OCaml implementation of BLS12-381

Install

# if you implement a library and you don't need an actual implementation
opam install bls12-381
# to target UNIX
opam insall bls12-381-unix
# to target JavaScript, to be used with jsoo.
opam install bls12-381-js

See below how to use in your project.

Run tests

dune runtest
dune build @test/js/browser/serve # Check _build/default/test/js/browser and run `npm run serve`

To get the coverage (only ok for bls12-381-unix and bls12-381-gen)

dune runtest --instrument-with bisect_ppx --force
bisect-ppx-report html

How to use in my project

If you are developing a library using bls12-381, you only need to add bls12-381 in the dependency list. However, if you are writing a binary, three packages are relevant:

For more examples, see the test directories.

Run the benchmarks

opam install core_bench
dune exec benchmark/bench_ec.exe
dune exec benchmark/bench_ff.exe
dune exec benchmark/bench_pairing.exe

Documentation

opam install odoc
dune build @doc