inro
One file · one cell per page · gold = written by the last commit

The database that fits in the case.

inro is an embedded key-value engine in pure Rust, built around one dominant criterion: the smallest possible consumption of disk, RAM and CPU.

From the Japanese 印籠 — the small, tightly fitted case that held a seal and its ink, carried on the belt, holding everything essential in the least possible space.

Footprint

Measured, not projected — phases 1 and 2 are closed. Each figure is fixed by a benchmark in the repository.

1,536 B
a freshly created database — target was under 2 KB
34.14 B
per 16-field log entry on disk — target was 40 or less
19.7 KB
RAM per open database — target was under 32 KB
4 reads
to open a database, the same at 30 KB and at 2 GB

Against Arkeion

Arkeion — the system of record

Optimises for auditability, versioning and query power. Time-travel, branches, SQL, full-text and vectors.

inro — the local store

Optimises for footprint. Gives up SQL, time-travel and branching to get there. Thousands of instances per process, or one node with megabytes of RAM.

They coexist. Arkeion is where the record lives; inro is what the node writes to.

Where it runs

Edge and IoT

A few megabytes of RAM, slow CPUs, flash with limited write endurance, datasets under 100 MB, a single process.

Multi-tenant servers

Thousands of tiny databases open at once, one per tenant, where RAM per open database is the dominant cost.

Built for

quota's edge nodes.

Every quota node keeps its own row, one record per request with 16 fields, and a monthly aggregate — on a sliding retention window of two to fourteen days. Thousands of nodes, one database each: exactly the case where RAM per open database and the cost of pruning decide the bill.

A pro node's five-day window · gold = the monthly aggregate that outlives it

Why inro

Status

Name reserved. Phases 1 and 2 are closed and measured; the engine works and its numbers are in the repository. The crate is not published yet, and the next step is not another engine phase — it is running under quota's edge.

MIT or Apache-2.0, at your option.