[package] name = "localsend" version = "0.1.0" edition = "2021" [dependencies] anyhow = "1.0.104" base64 = "0.23.0" bytes = "1.12.1" ed25519-dalek = { version = "3.0.0", features = ["pem", "rand_core"], optional = true } flate2 = { version = "1.1.9", optional = true } form_urlencoded = { version = "1.2.2", optional = true } futures-util = { version = "0.3.33", features = ["sink"] } http-body-util = { version = "0.1.4", optional = true } hyper = { version = "1.11.0", optional = true } if-addrs = { version = "0.15.0", optional = true } hyper-util = { version = "0.1.20", features = ["server"], optional = true } lru = "0.18.1" pem = { version = "4.0.0", optional = true } percent-encoding = { version = "2.3.2", optional = true } rcgen = { version = "0.14.8", default-features = false, features = ["crypto", "pem", "ring"], optional = true } reqwest = { version = "0.13.4", features = ["charset", "http2", "system-proxy", "json", "rustls-no-provider", "stream"], default-features = false, optional = true } rand = "0.10.2" rsa = { version = "0.9.10", features = ["sha2"], optional = true } rustls = { version = "0.23.43", default-features = false, features = ["ring", "tls12", "std"], optional = true } serde = { version = "1.0.229", features = ["derive"] } serde_json = "1.0.151" sha2 = { version = "0.11.0", optional = true } socket2 = { version = "0.6.5", optional = true } thiserror = "2.0.19" tokio = { version = "1.53.1", features = ["full"] } tokio-rustls = { version = "0.26.4", default-features = false, features = ["ring", "tls12"], optional = true } tokio-stream = "0.1.19" tokio-tungstenite = { version = "0.30.0", features = ["rustls-tls-webpki-roots"], optional = true } tokio-util = { version = "0.7.19", features = ["rt"], optional = true } tracing = "0.1.44" tracing-subscriber = { version = "0.3.23" } tungstenite = "0.30.0" uuid = { version = "1.24.0", features = ["serde", "v4"] } webrtc = { version = "0.14.0", optional = true } x509-parser = { version = "0.18.1", features = ["verify"], optional = true } [features] default = [] crypto = ["ed25519-dalek", "rcgen", "rsa", "sha2", "tokio-util"] http = ["crypto", "form_urlencoded", "http-body-util", "hyper", "hyper-util", "pem", "percent-encoding", "reqwest", "rustls", "socket2", "tokio-rustls", "tokio-util", "x509-parser"] multicast = ["if-addrs", "socket2", "tokio-util"] webrtc-signaling = ["tokio-tungstenite"] webrtc = ["crypto", "flate2", "dep:webrtc", "webrtc-signaling", "x509-parser"] full = ["crypto", "http", "multicast", "webrtc"] # RSA key generation is bignum-heavy and takes ~10x longer unoptimized; # keep the crypto crates optimized in dev so tests stay fast. [profile.dev.package.rsa] opt-level = 2 [profile.dev.package.num-bigint-dig] opt-level = 2