inro

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.

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.

Design targets — not yet measured. Phase 1 is in progress.

< 2 KB
a freshly created database
≤ 40 B
per 16-field log entry on disk
< 32 KB
core RAM per open database, constant and configurable
O(1)
reads to open a database, whatever the file size

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.

Why inro

Name reserved. The design is complete; phase 1 — the core — is being written. There is no public API yet.

MIT or Apache-2.0, at your option.