Persistent store with Git semantics: lazy reads, delayed writes, content-addressing
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

irmin: rewrite README for clarity, add serve command

Improve the opening description to explain what Irmin is and does.
Add a CLI section documenting the serve command (expose store as
read-only ATProto PDS over XRPC). Fix Codec alignment in module tree.

+12 -2
+12 -2
README.md
··· 1 1 # Irmin 4.0 2 2 3 - Content-addressable storage for OCaml. 3 + Content-addressable tree store for OCaml. Irmin models data as lazy, 4 + hash-linked trees that can be read from and written to pluggable backends. 5 + It supports both Git object format and ATProto PDS (DAG-CBOR) trees, and can 6 + expose any store over HTTP as a read-only ATProto PDS. 4 7 5 8 ## Architecture 6 9 ··· 40 43 - **Delayed writes**: Changes accumulate until flush 41 44 - **Multiple formats**: Git trees and ATProto PDS 42 45 - **Subtree operations**: For monorepo workflows (replaces git subtree shelling) 46 + - **XRPC serving**: Expose any store as a read-only ATProto PDS over HTTP (`irmin serve`) 43 47 44 48 ## Usage 45 49 ··· 74 78 ``` 75 79 Irmin 76 80 ├── Hash # Phantom-typed SHA-1/SHA-256 77 - ├── Codec # Format.S signature + Git/Pds implementations 81 + ├── Codec # Format.S signature + Git/Pds implementations 78 82 ├── Backend # KV storage (Memory, Git, layered, cached) 79 83 ├── Tree # Lazy tree with delayed writes 80 84 ├── Commit # Commit operations 81 85 ├── Store # High-level API (tree + commits + branches) 82 86 ├── Subtree # Monorepo subtree operations 83 87 └── Git_interop # Git repository I/O 88 + ``` 89 + 90 + ## CLI 91 + 92 + ``` 93 + irmin serve [-p PORT] [--did DID] Serve store as read-only ATProto PDS over XRPC 84 94 ``` 85 95 86 96 ## References