| Crates.io | ministore |
| lib.rs | ministore |
| version | 0.1.4 |
| created_at | 2025-11-03 07:10:54.924151+00 |
| updated_at | 2026-01-05 17:03:02.308394+00 |
| description | WAL-based embedded state store for Rust-application |
| homepage | |
| repository | https://github.com/ArcellaTeam/mini-rs/ |
| max_upload_size | |
| id | 1914062 |
| size | 67,604 |
ministoreMinimal WAL engine for durable, replayable event logging
Part of the mini-rs embeddable toolkit
ministoregives you just enough: atomic, durable, human-readable WAL with zero hidden machinery.
ministore is a Write-Ahead Log (WAL) engine that guarantees every record you write is:
fsynced to disk before the call returns.It is not a state manager — just a reliable log. You define the record type and apply it to your state.
Perfect for:
[dependencies]
ministore = "0.1"
serde = { version = "1.0", features = ["derive"] }
use ministore::MiniStore;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize)]
struct Set { value: u32 }
// Write
let mut store = MiniStore::open("state/journal.jsonl").await?;
store.append(&Set { value: 42 }).await?; // fsync guaranteed
// Replay
let records: Vec<Set> = MiniStore::replay("state/journal.jsonl").await?;
💡 Journal format:
// MINISTORE JOURNAL v0.1.0 {"Set":{"value":42}}
| Property | Guarantee |
|---|---|
| Durability | After append().await, data survives crashes and power loss. |
| Atomicity | Each record is one valid JSON line — no partial writes. |
| Ordering | Records replay in exact append order. |
| Format | Human-readable JSONL + magic header for validation. |
mini-rsministore — durable WAL engine (this crate)minisnap — snapshotting & log compactionministate — ready-to-use state manager (built on ministore + minisnap)miniqueue — local durable message queueUsed in:
Dual-licensed under:
Choose the one that best fits your project.
ministore— because if your data matters, it must survive a crash.
Part of themini-rsfamily: simple, embeddable, reliable.