observer-core 0.1.1

Core canonical contracts and analytics for the Observer verification platform
Documentation

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 contract
  • suite: canonical suite model and selector logic
  • runtime: suite execution over canonical inventory
  • product: staged product certification model
  • report and report_jsonl: report serialization and parsing
  • analytics: cube, compare, and compare-index derivation
  • cmake: lowered CMake product model and first CMake certification checks

Common Uses

Compute stable hashes for canonical artifacts:

use observer_core::{normalized_inventory_sha256, normalized_product_sha256, normalized_suite_sha256};

Parse report JSONL produced by Observer:

use observer_core::{parse_product_report_jsonl, parse_report_jsonl};

Derive analytics artifacts from canonical evidence:

use observer_core::{derive_compare_index, derive_compare_pair, derive_cube_from_report};

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.