shared/ contains the reusable Rust crates that make up the Aether runtime.
These crates are used by one or more architecture packages under
architectures/.
core: common identifiers, fixed-size containers, hashing, Merkle proofs, Bloom filters, shuffling, learning-rate schedules, and batch IDs.coordinator: coordinator state machine, model/run config, client membership, round progression, committee selection, and data assignment.client: common client orchestration used by architecture-specific client binaries.data-provider: local, HTTP, weighted, preprocessed, and optional TCP training data providers.event-sourcing: structured event logging, file backends, tracing bridge, and timeline projections.eval: language-model evaluation harness and benchmark task implementations.inference: experimental inference protocol and optional vLLM bridge.metrics: OpenTelemetry metrics and local TCP metrics serving.modeling: Torch/tch model loading, training, optimization, sampling, and parallelism support.network: Iroh-based networking, gossip, blobs, model sharing, and TCP utilities.tui: Ratatui helpers, render loops, widgets, and logging setup.watcher: backend abstraction that feeds coordinator updates to clients and sends client updates back.test-support: deterministic RNG and serialization helpers for tests.
Run one shared crate:
cargo test -p aether-coreRun the shared crates as part of the full workspace test suite:
bash scripts/with-libtorch-env.sh cargo test --workspaceCrates that depend on Torch, Python, NCCL, or vLLM may need extra environment
setup. Use scripts/with-libtorch-env.sh when in doubt.