swactor/Cargo.toml
Zachery Aaron Shores-Chmielewski 5bbdfb041e runtime: checkpoint distributed execution and retained-node deployment
Integrate namespace and source-route lifecycle changes, contextual process cleanup, Python binding updates, and Myelin worker/orchestrator recovery. Keep the shared control contracts, deployment identity fencing, SSH bootstrap adapters, paid admission accounting, and VastAI cleanup implementation together with their consumers.

Migrate Iroh dependencies and telemetry transport/collection with dashboard and demo callsites, workspace build configuration, and actor-control-flow policy updates. This is an intermediate development checkpoint, not paid-provider qualification.

Review verification: contextual_process_guarantees (4 tests), telemetry_transport (4 tests), and shared control contracts (5 tests) passed. Historical five-node redeployment and campaign execution passed individually; complete ordered qualification remains pending.
2026-09-14 12:20:56 +03:00

139 lines
3.6 KiB
TOML

[workspace]
members = [
".",
"crates/engine",
"crates/bindings/python",
"crates/bindings/wasm-runtime",
"crates/process",
"crates/process-context",
"crates/provisioning",
"crates/distribution",
"crates/iroh-driver",
"crates/dashboard",
"crates/myelin-control-contract",
"apps/myelin",
"xtask",
"tools/vastai",
"tools/actor-control-flow-lint",
"tools/myelin-e2e-fuzz",
"tools/benchmarks",
]
default-members = [
".",
"crates/engine",
"crates/process",
"crates/process-context",
"crates/provisioning",
"crates/transport",
"crates/distribution",
"crates/dashboard",
"apps/myelin",
"tools/vastai",
]
# The language bindings (python, wasm) and xtask are built on demand
# (-p / --workspace / cargo-xtask), not during normal native iteration.
exclude = ["crates/bindings/wasm-crypto", "examples"]
[workspace.dependencies]
# Centralized so every member resolves tokio with the SAME feature set.
# Without this, members declared tokio with different features, so building
# one member vs another (or `run` vs `test`) recompiled tokio each time.
tokio = { version = "1", features = ["rt", "rt-multi-thread", "macros", "process", "io-util", "sync", "time", "net", "signal"] }
iroh = { version = "1.1", default-features = false, features = ["portmapper", "tls-ring"] }
iroh-base = { version = "1.1", default-features = false, features = ["key"] }
iroh-relay = { version = "1.1", default-features = false, features = ["test-utils"] }
reqwest = { version = "0.13", default-features = false, features = ["json", "rustls-no-provider"] }
rustls = { version = "0.23", default-features = false, features = ["ring", "std"] }
[package]
name = "swactor"
version = "0.1.0"
edition = "2024"
license = "AGPL-3.0-only"
autobenches = false
[profile.bench]
debug = true
strip = false
# Development builds omit debug information; the diagnostic profile restores
# full debugger support without changing release artifacts.
[profile.dev]
debug = 0
[profile.dev.package.iroh]
hint-mostly-unused = true
[profile.dev.package."noq-proto"]
hint-mostly-unused = true
[profile.dev.package.reqwest]
hint-mostly-unused = true
[profile.dev.package.rustls]
hint-mostly-unused = true
[profile.dev.package.tokio]
hint-mostly-unused = true
[profile.test]
debug = 0
[profile.test.package.iroh]
hint-mostly-unused = true
[profile.test.package."noq-proto"]
hint-mostly-unused = true
[profile.test.package.reqwest]
hint-mostly-unused = true
[profile.test.package.rustls]
hint-mostly-unused = true
[profile.test.package.tokio]
hint-mostly-unused = true
[profile.diagnostic]
inherits = "dev"
debug = 2
[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"
atomic-waker = "1.1"
crossbeam-utils = "0.8.21"
parking_lot = "0.12"
[dev-dependencies]
proptest = "1"
proptest-state-machine = "0.3"
loom = "0.7"
proc-macro2 = "1"
syn = { version = "2", features = ["full", "visit"] }
[workspace.lints.rust]
warnings = "deny"
[workspace.lints.clippy]
allow_attributes = "forbid"
[lints]
workspace = true