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.
Solo5 is a sandboxed execution environment for unikernels, providing a minimal, legacy-free interface between unikernel applications and host systems. It supports multiple backends: hvt (hardware virtualization via KVM, FreeBSD/OpenBSD/DragonFly vmm), spt (Linux seccomp sandbox), virtio (QEMU/bhyve), Xen, and Muen. The architecture consists of guest-side bindings (implementing the solo5_* API) and host-side tenders (loaders/runtime components). Key entry points include the guest's _start() in each binding's start.c and the tender's main (e.g., hvt_main.c, spt_main.c). Data flows are synchronous: unikernels communicate via hypercalls (hvt), seccomp-allowed syscalls (spt), or Xen hypercalls, with shared-memory ring buffers for I/O. External dependencies include libseccomp (spt), KVM/BSD hypervisor APIs, and vendored Xen public headers. The project originated from IBM Research and is used by MirageOS and other unikernel frameworks.