docs(readme): rewrite README with a short overview and docs/ (#4)
- commit
- d6a34b8797c5b5452ae3bd29a35fee0410ac3d2c
- author
- brice · · 2026-10-18 17:43 UTC
- committer
- bnema · · 2026-10-18 17:43 UTC
- parent
- 34d577f
- signature
- SSH Unverified
SHA256:VOCA5lYARHcbKDZ7GhTV45VmcjWnJ6ZQIBazj17LivAThe key is unknown
1 file · +21 -3
M README.md +21 -3
| @@ -1,11 +1,29 @@ | |||
| 1 | - | # ermite-kv | |
| 1 | + | <h1 align="center">ermite-kv</h1> | |
| 2 | + | ||
| 3 | + | <p align="center"> | |
| 4 | + | <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="License: MIT"></a> | |
| 5 | + | <a href="https://github.com/bnema/ermite-kv/commits/main"><img src="https://badgen.net/github/last-commit/bnema/ermite-kv/main?icon=github" alt="Last commit"></a> | |
| 6 | + | <a href="https://github.com/bnema/ermite-kv/stargazers"><img src="https://badgen.net/github/stars/bnema/ermite-kv?icon=github" alt="GitHub stars"></a> | |
| 7 | + | </p> | |
| 8 | + | ||
| 9 | + | <p align="center">An embedded key-value store for Go.</p> | |
| 2 | 10 | ||
| 3 | 11 | > Read-only mirror. Development happens at git.bnema.dev; issues and pull requests are closed here. | |
| 4 | 12 | ||
| 5 | - | An embedded key-value store for Go. Data lives in memory and is persisted to an append-only log with snapshots. One writer goroutine groups commits into a single `fsync`, and readers use immutable snapshots without locks. Standard library only, plus [zerowrap](https://github.com/bnema/zerowrap) for logs. | |
| 13 | + | --- | |
| 14 | + | ||
| 15 | + | ## Features | |
| 16 | + | ||
| 17 | + | - Data in memory, persisted to an append-only log with snapshots | |
| 18 | + | - One writer groups commits into a single `fsync` | |
| 19 | + | - Lock-free reads from immutable snapshots | |
| 20 | + | - Conditional writes (`RequireAbsent`, `RequireVersion`) | |
| 21 | + | - Standard library only, plus [zerowrap](https://github.com/bnema/zerowrap) for logs | |
| 6 | 22 | ||
| 7 | 23 | Status: early development, no stable API. Linux only. | |
| 8 | 24 | ||
| 25 | + | ## Usage | |
| 26 | + | ||
| 9 | 27 | ```go | |
| 10 | 28 | import kv "bnema.dev/ermite-kv" | |
| 11 | 29 | ||
| @@ -28,7 +46,7 @@ for key, item := range db.Snapshot(ctx).Prefix(ctx, []byte("user/")) { | |||
| 28 | 46 | } | |
| 29 | 47 | ``` | |
| 30 | 48 | ||
| 31 | - | The package documentation describes the durability and visibility guarantees. | |
| 49 | + | Durability and visibility guarantees are in the package documentation (`go doc bnema.dev/ermite-kv`). | |
| 32 | 50 | ||
| 33 | 51 | ## Test | |
| 34 | 52 | ||
| @@ -1,11 +1,29 @@ | |||||
| 1 | - | # ermite-kv | 1 | + | <h1 align="center">ermite-kv</h1> |
| 2 | + | ||||
| 3 | + | <p align="center"> | |||
| 4 | + | <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="License: MIT"></a> | |||
| 5 | + | <a href="https://github.com/bnema/ermite-kv/commits/main"><img src="https://badgen.net/github/last-commit/bnema/ermite-kv/main?icon=github" alt="Last commit"></a> | |||
| 6 | + | <a href="https://github.com/bnema/ermite-kv/stargazers"><img src="https://badgen.net/github/stars/bnema/ermite-kv?icon=github" alt="GitHub stars"></a> | |||
| 7 | + | </p> | |||
| 8 | + | ||||
| 9 | + | <p align="center">An embedded key-value store for Go.</p> | |||
| 2 | 10 | ||||
| 3 | > Read-only mirror. Development happens at git.bnema.dev; issues and pull requests are closed here. | 11 | > Read-only mirror. Development happens at git.bnema.dev; issues and pull requests are closed here. | ||
| 4 | 12 | ||||
| 5 | - | An embedded key-value store for Go. Data lives in memory and is persisted to an append-only log with snapshots. One writer goroutine groups commits into a single `fsync`, and readers use immutable snapshots without locks. Standard library only, plus [zerowrap](https://github.com/bnema/zerowrap) for logs. | 13 | + | --- |
| 14 | + | ||||
| 15 | + | ## Features | |||
| 16 | + | ||||
| 17 | + | - Data in memory, persisted to an append-only log with snapshots | |||
| 18 | + | - One writer groups commits into a single `fsync` | |||
| 19 | + | - Lock-free reads from immutable snapshots | |||
| 20 | + | - Conditional writes (`RequireAbsent`, `RequireVersion`) | |||
| 21 | + | - Standard library only, plus [zerowrap](https://github.com/bnema/zerowrap) for logs | |||
| 6 | 22 | ||||
| 7 | Status: early development, no stable API. Linux only. | 23 | Status: early development, no stable API. Linux only. | ||
| 8 | 24 | ||||
| 25 | + | ## Usage | |||
| 26 | + | ||||
| 9 | ```go | 27 | ```go | ||
| 10 | import kv "bnema.dev/ermite-kv" | 28 | import kv "bnema.dev/ermite-kv" | ||
| 11 | 29 | ||||
| @@ -28,7 +46,7 @@ for key, item := range db.Snapshot(ctx).Prefix(ctx, []byte("user/")) { | |||||
| 28 | } | 46 | } | ||
| 29 | ``` | 47 | ``` | ||
| 30 | 48 | ||||
| 31 | - | The package documentation describes the durability and visibility guarantees. | 49 | + | Durability and visibility guarantees are in the package documentation (`go doc bnema.dev/ermite-kv`). |
| 32 | 50 | ||||
| 33 | ## Test | 51 | ## Test | ||
| 34 | 52 | ||||