station-tools is the standalone source, verification, and publication toolchain for Astrid
Stations. It has no dependency on astrid-kernel, the Astrid daemon, or runtime business logic.
The kernel receives only a verified, private local .capsule handoff from a Station-aware operator;
Station coordinates and URLs are never passed as an installer source.
The workspace's truthful minimum supported Rust version is 1.88, matching the locked dependency graph and every repository/template build workflow.
The workspace owns the Station protocol and canonical wire format, TUF trust and rollback checks, anonymous static client, publication/event preparation, repository validator/generator/signer, and conformance vectors. Public identity is deliberately Station-specific:
- publication schema:
station-v1; - event schema:
station-event-v1; - identity field:
station_id; - domain-separated digests:
astrid:station:*.
| Crate | Responsibility |
|---|---|
astrid-station-protocol |
Typed publications, events, locks, canonical digests, and resolver |
astrid-station-tuf |
TUF metadata verification, trust-root pinning, rollback state, and bounded targets |
astrid-station-client |
Anonymous shard/object resolution with explicit online/offline transports |
astrid-station-publish |
Capsule archive validation and publication/event preparation |
astrid-station-tool |
Repository validation, deterministic generation, authenticated prior-role export, and TUF Pages signing |
astrid-station |
User-facing CLI boundary (source management and verified artifact handoff) |
The Rust libraries keep transport explicit. astrid-station-tuf is built without HTTP features;
callers may use tough::FilesystemTransport, tough::HttpTransport, or a test transport in the
outer application. Trust-root verification, publication signatures, and local operator approval
remain separate checks.
cargo test --workspace --all-targets --locked
cargo clippy --workspace --all-targets --all-features --locked -- -D warnings
python3 -m unittest -v tests/test_check_dco.py
python3 -m unittest -v tests/test_workflow_security.py
python3 -m unittest -v tests/conformance/test_runner.py
python3 -m unittest -v tests/conformance/test_derivation_vectors.py
python3 -m unittest -v docs/repository-template/tests/test_template.pyThe repository template under docs/repository-template/ is intended to be copied into its own
Station repository. It contains no private trust material.
Licensed under either MIT or Apache-2.0, at your option.