Repository Layout
The repository is centered on a single Cargo package, alchemrs.
That package contains:
- the
alchemrslibrary crate - the
alchemrscommand-line binary
alchemrs library layout
The alchemrs crate is organized into modules rather than separate library crates:
data: domain types and scientific data-model structureserror: shared crate-level error handlingparse: engine-specific parsers; today this means AMBER parsingprep: time-series preparation such as duplicate cleanup, sorting, equilibration detection, and decorrelationestimators: TI, BAR, MBAR, EXP, and DEXP implementationsanalysis: overlap diagnostics built on top of MBAR log weights
The crate root also re-exports the most common types and functions directly for a flatter API.
CLI binary
The alchemrs binary wraps parsing, preprocessing, estimation, and output formatting into a command-line workflow. The scientific logic lives in the library; the CLI is a thin consumer of that API.
Layering
The intended dependency direction inside the library is:
parse -> data + error
prep -> data + error
estimators -> data + error
analysis -> data + error + estimators
The binary depends on the library through the same package source tree.