I’m very happy to announce the release of the Irmin 2.3.0 family of packages, including:
irmin-pack.2.3.0, a storage backend for Irmin designed for and used by Tezos. This release contains a host of performance improvements as well as offline CLI features such as integrity checking. It also contains a number of high-level design changes, which were discussed in a recent Tarides blog post.
irmin-pack.2.3.0also contains a prototype of the layered
irmin-packstore, which provides an OverlayFS-esque mode of operation for
irmin-packin which the causal history of the store can be chunked into independently-accessable substores. This feature will eventually be deployed in a future version of Tezos.
irmin-containers, a collection of pre-defined mergeable data structures built using Irmin and compatible with any backend. These were originally provided by @kayceesrk as part of
ezirmin, and has since been modernised and upstreamed by Anirudh S.
irmin-bench, a suite of benchmarks for Irmin for use with
current-bench, an experimental continuous benchmarking infrastructure for OCaml projects. Lots of work has been going on behind the scenes to make this a general benchmarking infrastructure for the Mirage ecosystem, including a recent fancy UI overhaul by new contributor @rizo.
repr, an extraction of the
Irmin.Typetype representation library for use in other packages. This package contains a set of combinators for building run-time representations of types, along with various generic operations defined over those representations, including: equality, comparison, pretty-printing, JSON / binary codecs, etc. The API of this library is currently a work-in-progress, but we hope to use it more widely in the Mirage ecosystem soon.
semaphore-compat, an extraction of the
Semaphorelibrary in OCaml 4.12, for libraries that want to maintain compatibility with earlier versions of OCaml.
The full list of changes to Irmin can be found here.
Many thanks to our open-source contributors and collaborators. Happy hacking!