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>
86 lines
2.4 KiB
TOML
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" }
|