Architecture

The framework is a Cargo workspace of small, single-responsibility crates. The shipped binary links zero external crates — everything is built on std.

The crates

builder, a thread pool, and the accept loop.

floats stay distinct so record IDs round-trip exactly.

{% if %}, {% for %}, {% include %}, rendered against a JSON context.

changelog.

copy-on-write B+tree. Durability comes from atomic commits, not luck.

Request flow

TCP → parse request → route:
   /api/*          → JSON endpoints (health, _meta, records)
   /docs, /changelog → Markdown rendered into a layout template
   *.css, *.js …   → static files
   everything else → a template, rendered against backend/page.json

Durability

The storage engine never overwrites live data. A write produces new pages and a new tree root; the commit is an atomic swap of a double-buffered, checksummed meta page followed by an fsync. A crash mid-write always leaves the last fully-committed state intact — the same model proven by LMDB and redb.

TLS

std cannot do TLS, and the framework will not pull in a crate for it. Terminate TLS at the edge (nginx, Caddy) and let the server speak plain HTTP on localhost — the standard, correct topology for this scale.