# strontium-core
Reusable deterministic simulation tooling migrated into Strontium.
See [repository docs](../../docs/README.md) for substrate-oriented adoption
guides, facade mapping, transport integration guidance, and reference consumer
architecture notes.
## Stable Entry Point
Use `strontium_core::api` as the public facade.
Preferred new imports:
- `strontium_core::api::runtime`
- `strontium_core::api::sim`
- `strontium_core::api::artifacts`
- `strontium_core::api::outcome`
The older `strontium_core::api::{core, run}` surfaces remain available only as
deprecated compatibility shells during the migration window.
### `strontium_core::api::core`
- deterministic executor and scheduler
- virtual clock
- seeded RNG
- trace and reproducibility bundle types
- reusable virtual filesystem
- reusable network queue mechanics
- reusable transport-dispatch mechanics
Representative names from the cleaned facade include `Reactor`, `TaskHandle`, `Interval`,
`Clock`, `Rng`, `Vfs`, `Network`, `NetworkClock`, `NetworkDeliveryReport`,
`DispatchRegistry`, `RouteOutcome`, and `DeserializeError`.
### `strontium_core::api::run`
- simulation config
- simulation result and outcome types
- invariant-violation reporting types
Representative names from the cleaned facade include `Config`, `Outcome`, `RunResult`,
and `InvariantViolation`.
## Deliberately Excluded
`strontium-core` does not expose Palladium runtime bindings such as:
- `pd_runtime::Engine`
- `pd_actor` supervision and actor setup helpers
- `pd_transport::TransportRegistry` adapters
- Palladium-specific DST scenarios and assertions
Those remain outside `strontium-core`.
## Benchmarking
Use `cargo bench --bench strontium_core` to run the current microbenchmark suite for scheduler queue
operations, network delivery, and trace append overhead.