swactor/crates/simulation/Cargo.toml
Zachery Aaron Shores-Chmielewski 1f8a67231c feat(sim): rebuild around discrete-event engine
Replaces the generic SimNode/gossip/dashboard framework with a virtual-time
discrete-event engine (priority queue ordered by time/node/fiber/seq), a TOML spec
parser, bundle writer, replay, divergence detector, lint, and postproc, plus the
parity-bar test harness with fixtures and xtask parity-lock tooling. Rewrites
transport identity/crypto and adds the SPEC/TESTING_SPEC/OBSERVABILITY/NORTH_STAR docs.


Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
2026-05-21 23:48:02 +04:00

104 lines
2.4 KiB
TOML

[package]
name = "simulation"
version = "0.1.0"
edition = "2024"
build = "build.rs"
[lib]
path = "src/lib.rs"
[[bin]]
name = "sim-driver"
path = "src/bin/sim-driver.rs"
[[bin]]
name = "sim-detector"
path = "src/bin/sim-detector.rs"
[[bin]]
name = "lint-deterministic"
path = "src/bin/lint-deterministic.rs"
[dependencies]
serde = { version = "1", features = ["derive"] }
serde_json = "1"
sha2 = "0.10"
toml = "0.8"
[build-dependencies]
# The runtime surface descriptor is derived from `src/runtime/mod.rs`
# at build time. `surface.lock` records the expected SHA-256; a trait
# edit that does not also update the lock fails `tests/surface_locked.rs`.
syn = { version = "2", features = ["full", "parsing"] }
quote = "1"
[dev-dependencies]
# Tests use the production post-processor (TESTING_SPEC §7.1) and
# the in-memory tar+gzip helpers needed to feed an on-disk sim
# bundle into it.
distribution = { path = "../distribution", features = ["iroh", "collector"] }
flate2 = "1"
tar = "0.4"
# Parity-bar t_facade re-derives the surface from runtime source to
# catch tampering with build.rs.
syn = { version = "2", features = ["full", "parsing"] }
quote = "1"
[features]
# `_facade-test` is the default marker that lets `cargo test -p
# simulation` build the crate without picking a backend. It is
# stripped by `--no-default-features`, which then trips the
# neither-feature const-panic in `src/runtime/mod.rs`.
default = ["_facade-test"]
# Mutually exclusive — exactly one selects the active `runtime::facade()`.
facade-prod = []
facade-sim = []
_facade-test = []
[[test]]
name = "corpus_loads"
path = "tests/corpus_loads.rs"
[[test]]
name = "surface_locked"
path = "tests/surface_locked.rs"
[[test]]
name = "t_determinism"
path = "tests/parity-bar/t_determinism.rs"
[[test]]
name = "t_replay"
path = "tests/parity-bar/t_replay.rs"
[[test]]
name = "t_facade"
path = "tests/parity-bar/t_facade.rs"
[[test]]
name = "t_same_binary"
path = "tests/parity-bar/t_same_binary.rs"
[[test]]
name = "t_schema_coverage"
path = "tests/parity-bar/t_schema_coverage.rs"
[[test]]
name = "t_round_trip"
path = "tests/parity-bar/t_round_trip.rs"
[[test]]
name = "t_causality"
path = "tests/parity-bar/t_causality.rs"
[[test]]
name = "t_equivariance"
path = "tests/parity-bar/t_equivariance.rs"
[[test]]
name = "t_lifecycle"
path = "tests/parity-bar/t_lifecycle.rs"
[[test]]
name = "t_detector"
path = "tests/parity-bar/t_detector.rs"