[package] name = "karyon_p2p" description = "A lightweight, extensible, and customizable p2p network stack." version.workspace = true edition.workspace = true homepage.workspace = true repository.workspace = true license.workspace = true authors.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [features] default = ["smol"] smol = ["karyon_core/smol", "karyon_net/smol", "futures-rustls"] tokio = ["karyon_core/tokio", "karyon_net/tokio", "tokio-rustls"] serde = ["dep:serde", "karyon_net/serde"] [dependencies] karyon_core = { workspace = true, features = ["crypto"] } karyon_net = { workspace = true, features = ["tcp", "tls", "udp"] } log = { workspace = true } chrono = { workspace = true } rand = { workspace = true } thiserror = { workspace = true } semver = { workspace = true } sha2 = { workspace = true } parking_lot = { workspace = true } # encode/decode bincode = { workspace = true, features = ["derive"] } base64 = { workspace = true } serde = { workspace = true, features = ["derive"], optional = true } # async async-trait = { workspace = true } async-channel = { workspace = true } futures-util = { workspace = true, features = ["alloc"] } # tls rcgen = { workspace = true } yasna = { workspace = true } x509-parser = { workspace = true } futures-rustls = { workspace = true, features = ["aws-lc-rs"], optional = true } tokio-rustls = { workspace = true, features = ["aws-lc-rs"], optional = true } rustls-pki-types = { workspace = true } [dev-dependencies] smol = { workspace = true } blocking = "1.6.1" clap = { version = "4.5.7", features = ["derive"] } ctrlc = "3.4.4" easy-parallel = "3.3.1" env_logger = "0.11.3"