# The system level and its plugins are separate crates, so the boundary # between them is checked by the compiler rather than by discipline: a plugin # can reach only what the core makes public, and carries its own version. [workspace] resolver = "3" members = ["crates/*"] exclude = ["vendor/mainline"] # Mainline 8.0.0 treats Windows UDP read timeouts as socket failures. # Keep the small receive-loop correction reproducible until an upstream fix. [patch.crates-io] mainline = { path = "vendor/mainline" } [workspace.package] edition = "2024" rust-version = "1.91" license = "MIT OR Apache-2.0" repository = "https://github.com/tsunagi-net/tsunagi" [workspace.lints.rust] missing_docs = "warn" unsafe_code = "forbid" [workspace.lints.clippy] unwrap_used = "warn" expect_used = "warn" panic = "warn" [workspace.dependencies] iroh = { version = "1.2", default-features = false, features = ["tls-ring"] } tokio = { version = "1.53", features = ["rt", "rt-multi-thread", "sync", "time", "macros"] } serde = { version = "1.0", features = ["derive"] } postcard = { version = "1.1", default-features = false, features = ["use-std"] } bytes = "1.12.1" thiserror = "2.0" tracing = "0.1" hex = "0.4" data-encoding = "2.11" tempfile = "3.24" tracing-subscriber = { version = "0.3", features = ["env-filter"] }