Specifications
The hard numbers, taken straight from the source. None of it is secret — the code is available, so these are simply the facts as built.
Implementation
One workspace; the whole database is one project.
Server and CLI. No JVM, no sidecar, no network runtime, no wrapper.
No replication and no clustering, by design.
Storage internals
records · identity · dictionary · ghosts · vectors, each with its own WAL, memtable and compaction.
Type id (21 bits) and timestamp (21 bits) bit-interleaved, so a gravity cluster is contiguous on disk.
Deterministic, unsalted bucket assignment.
Fingerprints a query's filter to name and match auto-ghosts.
Cheap to write at the top of the tree.
Optional trained dictionary on cold tiers for denser blocks.
Selected by --storage-profile.
Vectors
No int8/binary quantization: there is no index to rerank, so quantizing would be real loss.
A homogeneous float list of 64+ becomes a vector; the dimension must stay consistent within a field, checked at query time.
NEAREST brute-forces the gravity bucket with Cauchy–Schwarz pruning. Recall 1.0, nothing to tune.
You bring the query vector; a remote service is opt-in only.
Hard limits
An unbounded SCAN caps at 1,000 (with a warning); an explicit LIMIT above 10,000 is rejected.
Written atomically in one batch.
A bucket grows as needed; paginate large reads with CURSOR. NEAREST stays exact over the whole bucket.
Structural (16-bit lobe id), not a tunable knob.
21-bit type id in the Z-order key.
Data types
Ten value types; nesting through list and map is arbitrary-depth.
signed 64-bit integer
signed 64-bit float
since the Unix epoch
Runtime & network
A version byte, then text or binary payloads; plain HTTP on the same port is auto-detected.
--tls-cert / --tls-key · --auth-token
Acknowledged writes are fsynced; segments roll and prune automatically.
Millisecond lock window; restore is offline.
Version & license
Source-available; converts to an open license over time.