# mirage/irmin

Irmin is a distributed database that follows the same design principles as Git

Repository: https://github.com/mirage/irmin
Canonical: https://ross.abutalabs.com/products/irmin
Homepage: https://irmin.org
Language: OCaml
License: ISC
License Family: permissive
Topics: ocaml, git, storage, mirageos, database, irmin
Last push: 2026-04-15T10:13:06+00:00

## Health v2 (maintenance only)
Score: 57/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 77, release rhythm 8, longevity 100
- inputs: {"age_days": 4881, "days_push": 140, "days_rel": 440, "gap_med": 189, "n_releases_24m": 2}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1957, forks 166 (observed 2026-08-28T04:05:59.171908+00:00)

## What it is
Irmin is an OCaml library for building mergeable, branchable distributed data stores following Git's design principles, with clone/push/pull/branch semantics and automated conflict handling. It is storage-agnostic (in-memory, filesystem, Git, pack files, Redis, browser) and includes CRDTs, event-driven APIs, and a CLI tool.

## Use cases
- build a distributed key-value store with Git-like branching and merging
- store application data with full version history and snapshot/restore
- persist data in Git format so it can be inspected with git CLI
- build event-driven distributed dataflow pipelines in OCaml
- implement CRDT-based replicated data with custom merge functions
- use a portable storage layer across unikernels, browsers, and Unix

## When to choose
- you are writing OCaml or MirageOS unikernel applications needing durable, versioned state
- you want Git-compatible on-disk storage with programmatic branch/merge semantics
- you need CRDTs or custom merge functions for distributed conflict resolution

## When to avoid
- you need a general-purpose production database engine with SQL or rich queries
- your stack is not OCaml and C bindings are insufficient
- you need high-throughput relational or document database features out of the box

## Facets
- artifact type: library
- maturity: active
- function: database, serialization, version-control, concurrency, sdk
- domain: databases, microservices, developer-tools
- platform: cross-platform, browser, wasm, self-hosted
- tags: ocaml, git-compatible, mirageos, crdt, distributed-database, branchable-storage, mergeable-datastore, functional-programming, linux, macos

## Member repositories
- mirage/irmin (main) score 57

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:59.171908+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:06:11.800992+00:00, confidence not recorded.
  - readme: https://github.com/mirage/irmin (fetched 2026-08-28T04:05:59.171908+00:00, sha 1513ed1687b2)
  - homepage: https://irmin.org (fetched 2026-08-29T10:45:52.467136+00:00, sha 6f9f36e6fa51)
- Data as of 2026-08-30T08:39:29.467469+00:00.
