Mmap-backed CON / convel corpus store — LMDB via Heed, non-SQL selection, xxHash3 exact match, bindings for Rust, C, C++, Python, and Fortran.
Format fidelity — parse, validate, write, multi-language ABI for a stream or file.
Corpus scale — thousands of frames, indexes, mmap residency, selective decode.
Explicit filters and B-tree postings. No planner surprises on hot analysis paths.
OS page cache holds hot corpus pages — “disk in RAM” without a second buffer pool.
LMDB MVCC read transactions for parallel analysis; single writer for ingest.
xxHash3-128 of canonical CON blobs; find_by_hash / select_hash.
Rust core → rkrdb_* C ABI → C++ / Python / Fortran.
use readcon_db::{ConCorpus, Select}; let db = ConCorpus::open("/tmp/corpus")?; db.append_trajectory_path(1, "run.con")?; let keys = db.select(&Select::new().require_symbol("Cu"))?; let h = db.frame_hash(keys[0])?;
include/readcon-db.h — rkrdb_* and RAII readcon_db::Corpus.
maturin develop --features python → readcon_db.ConCorpus.
fortran/ReadConDb module with bind(C) helpers.