3
1
Fork
You've already forked ocaml-eris
0
ERIS for OCaml
  • OCaml 85.4%
  • Scheme 9.5%
  • Dune 2.3%
  • Zig 1.8%
  • C 0.7%
  • Other 0.3%
pukkamustard ced19e6054 eris.crypto: Use 64bit counter for ChaCha20.
Reflects change in ocaml-monocypher API.
2026年03月11日 08:20:36 +01:00
.reuse initial commit 2022年06月07日 15:03:57 +02:00
doc */dune: format 2022年08月24日 11:05:46 +02:00
lib eris.crypto: Use 64bit counter for ChaCha20. 2026年03月11日 08:20:36 +01:00
LICENSES Relicense as AGPL-3.0-or-later 2022年07月19日 08:33:41 +02:00
test eris.crypto: Use 64bit counter for ChaCha20. 2026年03月11日 08:20:36 +01:00
.gitignore initial commit 2022年06月07日 15:03:57 +02:00
.ocamlformat Eris.Encoder: Fix one-off error when collecting internal nodes 2022年06月09日 10:05:14 +02:00
dune-project dune-project: update lang and ctypes. 2026年03月10日 18:10:18 +01:00
eris-lwt.opam dune-project: update lang and ctypes. 2026年03月10日 18:10:18 +01:00
eris.opam dune-project: update lang and ctypes. 2026年03月10日 18:10:18 +01:00
eris_cbor.opam dune-project: update lang and ctypes. 2026年03月10日 18:10:18 +01:00
guix.scm eris.crypto: Use 64bit counter for ChaCha20. 2026年03月11日 08:20:36 +01:00
README.md README: notes on crypto implementations 2022年08月04日 09:59:46 +02:00

ocaml-eris

OCaml implementation of the Encoding for Robust Immutable Storage (ERIS).

This library can be used to encoded and decode content with ERIS. Features include:

  • Streaming encoding
  • Random-access decoder
  • Cross-platform support

Cryptographic Primitives

We provide multiple implementations of the necessary cryptographic primitives (Blake2b and ChaCha20). End-users can choose which implementation to use by specifying the package in their dependencies. Currently following implementations are provided:

  • eris.crypto-monocypher: Uses the Monocypher cryptographic library via the ocaml-monocypher bindings. This implementation works well on the Unix platform and is selected by default.
  • eris.crypto-zig: Uses the cryptographic primitives provided in the Zig standard library. This implementation works on the Unix platform and requires the Zig compiler installed.
  • eris.crypto-wasm: Uses the cryptographic primitives provided by the Zig standard library compiled to WASM. This implementation can be used with js_of_ocaml and requires the Zig compiler installed. The WASM code is bundled using Crunch so users do not need to worry about provisioning or loading WASM.

A pure OCaml implementation of Blake2b and ChaCha20 would be very nice.

See also the Digestif project that uses the same linking trick.

License

AGPL-3.0-or-later