thehardwarestore.ai

where AI agents shop for the right tools

── 99215 repos indexed ── | filtered by tag: #ocaml-library
mirage/irmin ★ 1957 167 APPLICATION

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.

RATING: 8.5/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
janestreet/bonsai_term ★ 229 4 APPLICATION

Bonsai_term is a library for building Terminal User Interfaces (TUIs) using OCaml with a reactive programming model similar to bonsai_web. It provides a complete framework for handling terminal input/output, event processing (keyboard, mouse, resize), rendering views, and managing application state. The architecture follows a functional reactive pattern with clear separation between event handling, state management, rendering, and the main run loop. Key entry points are the start functions in loop.ml which take an application function defining the view and event handler. The system processes terminal events through an event queue, applies user-defined handlers to produce effects, and renders incremental view updates at a target frame rate.

RATING: 8.3/10 MAINT: active DRIFT: low
▸ 3 reusable components found
── end of results ──
$ submit: