[package] name = "squinn" version = "0.12.6" license = "MIT OR Apache-2.0" description = "Versatile QUIC transport protocol implementation with SCION support" readme = "../README.md" keywords = ["quic","scion"] categories = [ "network-programming", "asynchronous" ] workspace = ".." edition = "2021" rust-version = "1.65" [lib] name = "quinn" path = "src/lib.rs" # The source file of the target. test = true # Is tested by default. bench = true # Is benchmarked by default. doc = true # Is documented by default. crate-type = ["lib"] # The crate types to generate. #required-features = [] [package.metadata.docs.rs] all-features = true [features] default = ["native-certs", "tls-rustls", "runtime-tokio", "log"] # Records how long locks are held, and warns if they are held >= 1ms lock_tracking = [] # Provides `ClientConfig::with_native_roots()` convenience method native-certs = ["proto/native-certs"] tls-rustls = ["rustls", "proto/tls-rustls", "ring"] # Enables `Endpoint::client` and `Endpoint::server` conveniences ring = ["proto/ring"] runtime-tokio = ["tokio/time", "tokio/rt", "tokio/net"] runtime-async-std = ["async-io", "async-std"] # Write logs via the `log` crate when no `tracing` subscriber exists log = ["tracing/log", "proto/log", "udp/log"] [badges] codecov = { repository = "djc/quinn" } maintenance = { status = "experimental" } [dependencies] async-io = { version = "2.0", optional = true } async-std = { version = "1.11", optional = true } bytes = "1" # Enables futures::io::{AsyncRead, AsyncWrite} support for streams futures-io = { version = "0.3.19", optional = true } rustc-hash = "1.1" futures = "0.3.29" pin-project-lite = "0.2" proto = { package = "squinn-proto", path = "../quinn-proto", version = "0.11.8", default-features = false } rustls = { version = "0.21.0", default-features = false, features = ["quic"], optional = true } thiserror = "1.0.21" tracing = "0.1.40" tokio = { version = "1.28.1", features = ["sync"] } udp = { package = "squinn-udp", path = "../quinn-udp", version = "0.5.6", default-features = false } scionnet ={version="0.0.7" } pan_bindings = {version = "1.0.11"} simplelog = "^0.12.0" env_logger = "0.10.1" log = "0.4.20" time = "0.3.30" parking_lot = { version = "0.12", features = ["nightly","send_guard"] } [dev-dependencies] anyhow = "1.0.22" futures = "0.3.29" crc = "3" bencher = "0.1.5" directories-next = "2" rand = "0.8" rcgen = "0.11.1" rustls-pemfile = "1.0.0" clap = { version = "4", features = ["derive"] } tokio = { version = "1.28.1", features = ["rt", "rt-multi-thread", "time", "macros", "sync"] } tracing-subscriber = { version = "0.3.18", default-features = false, features = ["env-filter", "fmt", "ansi", "time", "local-time"] } tracing-futures = { version = "0.2.5", default-features = false, features = ["std-future"] } urls = {version="2" } # features = ["debugger_visualizer"] [[example]] name = "echo" required-features = ["tls-rustls"] [[example]] name = "server" required-features = ["tls-rustls"] [[example]] name = "client" required-features = ["tls-rustls"] [[example]] name = "insecure_connection" required-features = ["rustls/dangerous_configuration"] [[example]] name = "single_socket" required-features = ["tls-rustls"] [[example]] name = "scion_socket" required-features = ["tls-rustls"] [[example]] name = "connection" required-features = ["tls-rustls"] [[bench]] name = "bench" harness = false required-features = ["tls-rustls"]