FAQ#

Why is this a separate crate?#

readcon-core is the decoder and writer for one stream or file. readcon-db owns the LMDB tree, secondary indexes, and multi-reader mmap. Once structures are CON text, the same files ingest here without a second structure dialect.

What is authoritative?#

UTF-8 CON text. Hashes, dedup, join/split, and reindex run on the stored blobs. Cooked SoA / RCSO / H5MD arrays are derived and discardable.

Is this SQL?#

No. Select is an explicit builder (symbol, (N), energy, flags, exact hash) over B-tree postings. There is no planner.

Where do large campaigns go?#

CON text stays the structure contract. This crate indexes it. Multi-frame CON files and iter_con in core cover trajectory-style loads. For many writers, use Campaign ops runbook (one writer per shard).

How do XYZ, PDB, GRO fit in?#

They are ingress in readcon-core (chemfiles). Convert to CON, then ingest. Optional to_ase is calculator hand-off only; ASE is not on the read path.

How do I install it?#

Getting started. Rust: cargo add readcon-db. Python: pip install readcon-db. C/Fortran: Install.