observer-core
observer-core is the canonical data-model and derivation crate behind Observer.
It is the crate to use when you need Observer's deterministic contracts without depending on the CLI itself.
What It Contains
- canonical inventory, suite, product, and report types
- normalization and hashing for inventory, suite, product, and lowered CMake model artifacts
- provider-resolution helpers and provider list/run payload types
- suite execution and product certification runtime entrypoints
- analytics derivation for cubes, compares, compare indexes, and CMake check evidence
- JSON and JSONL parsing helpers for Observer-produced artifacts
The intended consumer is either:
- another Observer-facing crate such as the CLI
- an integration that wants to parse or derive Observer artifacts programmatically
- tooling that wants deterministic hashes and analytics without shelling out to
observer
Major Modules
inventory: canonical inventory contractsuite: canonical suite model and selector logicruntime: suite execution over canonical inventoryproduct: staged product certification modelreportandreport_jsonl: report serialization and parsinganalytics: cube, compare, and compare-index derivationcmake: lowered CMake product model and first CMake certification checks
Common Uses
Compute stable hashes for canonical artifacts:
use ;
Parse report JSONL produced by Observer:
use ;
Derive analytics artifacts from canonical evidence:
use ;
Scope
observer-core is intentionally contract-oriented. It does not try to provide a friendlier authoring layer for test authors. That work belongs in integration crates such as observer-rust-lib or in the observer CLI surface.
If you want the end-user command-line tool, install frogfish-observer instead. If you want the Rust registration/runtime primitives for building a provider, use observer-rust or observer-rust-host.