swactor/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

86 lines
2.4 KiB
TOML

[workspace]
members = [
".",
"crates/bindings/python",
"crates/bindings/wasm-runtime",
"crates/simulation",
"crates/dashboard",
"crates/process",
"crates/transport",
"crates/distribution",
"crates/datastore",
"crates/node",
"tests/docker",
"tests/integration",
"xtask",
]
# Stage 6 iteration 8: all production crates and integration
# tests are back in the workspace. The vendored
# `ed25519-dalek 3.0.0-pre.1` patch below unblocks the iroh
# umbrella crate, which datastore/node/tests-integration pull
# in via `iroh = "0.96"` (datastore/node) and
# `distribution/iroh,relay` (tests-integration).
exclude = ["crates/bindings/wasm-crypto", "examples"]
[package]
name = "swactor"
version = "0.1.0"
edition = "2024"
autobenches = false
[profile.bench]
debug = true
strip = false
[lib]
crate-type = ["rlib"]
[features]
default = ["getrandom", "std"]
std = [] # OTP patterns: supervisors, registries, timers, routers
getrandom = ["dep:getrandom"]
serde = ["dep:serde"]
tracing = ["dep:tracing"]
no_random = [] # compile without access to a source of randomness
transport = [
] # transport-agnostic messaging (no mandatory deps; codec is user-provided)
wasm = ["no_random", "dep:web-time"] # browser/wasm32 target support
[dependencies]
getrandom = { version = "0.2", optional = true }
serde = { version = "1", features = ["derive"], optional = true }
tracing = { version = "0.1", optional = true }
web-time = { version = "0.2", optional = true }
crossbeam-queue = "0.3.12"
crossbeam-utils = "0.8.21"
[lints.rust]
unexpected_cfgs = { level = "allow", check-cfg = ['cfg(kani)'] }
[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }
proptest = "1"
proptest-state-machine = "0.3"
[[bench]]
name = "runtime_benchmarks"
harness = false
[[bench]]
name = "mt_benchmarks"
harness = false
[[bench]]
name = "hasher_benchmarks"
harness = false
# Vendored `ed25519-dalek 3.0.0-pre.1` to fix two upstream
# compile errors (E0277, E0308) at `src/signing.rs:714,717`.
# Upstream encodes `pkcs8::Error::KeyMalformed` as a unit
# variant, but the resolved `pkcs8 0.11.0` re-exports it as
# `KeyMalformed(KeyError)`. The strict `=3.0.0-pre.1` pin
# from `iroh-base 0.96.1` forbids using a newer prerelease,
# so we vendor the published 3.0.0-pre.1 and apply a 2-line
# tuple-variant fix. See `.loop/notes.md` (Stage 6 iteration 8).
[patch.crates-io]
ed25519-dalek = { path = "vendor/ed25519-dalek" }