$ account mirage
Irmin is an OCaml library and ecosystem for building mergeable, branchable, version-controlled key-value stores inspired by Git's data model. It provides a core set of abstractions (content-addressable storage, atomic writes, indexed stores, tree-like nodes, merge combinators, watches, sync protocols) along with multiple backends: in-memory, filesystem, Git (bidirectional), and a custom on-disk pack format optimized for blockchain use cases (Tezos). The project includes a full CLI tool (`irmin`), a GraphQL server, a TCP/WebSocket client-server protocol, MirageOS support, C bindings, and a PPX deriver for automatic type representation. The architecture is heavily functor-based, enabling compositional reuse. The pack backend (`irmin-pack`) is a significant piece of engineering with garbage collection, incremental indexing, chunked suffix files, sparse file abstraction, versioned disk formats (V1–V5), and migration support. The codebase is well-tested with extensive integration and unit tests, and includes benchmarks for Tezos history replay and inode performance. The primary risk is the complexity of maintaining multiple backends and on-disk format versions, with some modules containing TODO comments or `assert false` placeholders.