/ abzu-transport / Cargo.toml
Cargo.toml
1 [package] 2 name = "abzu-transport" 3 version = "0.1.0" 4 edition = "2024" 5 publish = false 6 7 [dependencies] 8 # Serialization - postcard for maximum density (no_std compatible) 9 serde = { version = "1.0", default-features = false, features = ["derive", "alloc"] } 10 serde_bytes = "0.11" 11 postcard = { version = "1.0", default-features = false, features = ["alloc"] } 12 13 # Async runtime 14 tokio = { version = "1.0", features = ["net", "io-util", "sync", "macros", "time", "rt"] } 15 async-trait = "0.1" 16 17 # WebSocket support 18 tokio-tungstenite = "0.20" 19 futures-util = "0.3" 20 21 22 # Encryption 23 chacha20poly1305 = "0.10" 24 x25519-dalek = "2" 25 hkdf = "0.12" 26 sha2 = "0.10" 27 rand = "0.8" 28 29 # Error handling 30 thiserror = "1.0" 31 32 # Profile loading 33 toml = "0.8" 34 35 # DHT types 36 abzu-dht = { path = "../abzu-dht" } 37 38 # Logging 39 tracing = "0.1" 40 stun-proto = "1.0.2" 41 42 # Parser combinators for TLS structures 43 winnow = "0.7" 44 45 # Concurrent hash map for rate limiting 46 dashmap = "6" 47 48 # TURN relay - SOVEREIGNTY: disable default features to prevent aws-lc-rs 49 # We explicitly enable rustls via the workspace rustls dependency with ring 50 turn-client-proto = { version = "0.5.0", optional = true, default-features = false, features = ["std", "rustls"] } 51 52 # TLS - SOVEREIGNTY: Force ring provider, blocking aws-lc-rs (Amazon C++ crypto) 53 rustls = { version = "0.23", default-features = false, features = ["ring", "logging", "std", "tls12"], optional = true } 54 55 [dev-dependencies] 56 tokio = { version = "1.0", features = ["rt-multi-thread", "macros", "time", "sync"] } 57 proptest = "1.0" 58 serial_test = "3" 59 60 [features] 61 default = ["std", "relay"] 62 std = ["serde/std", "postcard/use-std"] 63 relay = ["turn-client-proto", "dep:rustls"] 64 # Ghost Mode: Cover traffic machinery. Exclude for mobile builds. 65 ghost = [] 66 # WebRTC transport for browser P2P 67 webrtc = ["dep:webrtc", "dep:bytes"] 68 69 [dependencies.webrtc] 70 version = "0.14" 71 optional = true 72 73 [dependencies.bytes] 74 version = "1" 75 optional = true