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.
139 lines
3.6 KiB
TOML
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
|