# 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", "vendor/iroh"] # 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" } # Backport bounded path retries until an iroh release includes the OOM fix. iroh = { path = "vendor/iroh" } [workspace.package] edition = "2024" rust-version = "1.91" license = "WTFPL" repository = "https://github.com/house-of-vanity/tsunagi" [workspace.lints.rust] missing_docs = "warn" unsafe_code = "deny" [workspace.lints.clippy] unwrap_used = "warn" expect_used = "warn" panic = "warn" [workspace.dependencies] iroh = { version = "1.2", default-features = false, features = ["tls-ring", "portmapper"] } 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"] }