[package] name = "karyon_net" description = "Internal crate for Karyon project." 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", "all-protocols"] all-protocols = ["tcp", "tls", "ws", "udp", "unix"] stream = ["dep:pin-project-lite", "dep:futures-util"] tcp = ["stream"] tls = ["dep:rustls-pki-types", "tcp"] ws = ["dep:async-tungstenite", "tcp"] udp = [] unix = ["stream"] smol = [ "karyon_core/smol", "async-tungstenite?/async-std-runtime", # TODO: use tls feature "futures-rustls", ] tokio = [ "karyon_core/tokio", "async-tungstenite?/tokio-runtime", "dep:tokio", # TODO: use tls feature "tokio-rustls", ] serde = ["dep:serde"] [dependencies] karyon_core = { workspace = true, default-features = false } async-trait = "0.1.77" log = "0.4.21" bincode = { version = "2.0.0-rc.3", features = ["derive"] } thiserror = "1.0.58" url = "2.5.0" async-channel = "2.3.0" futures-util = { version = "0.3.30", default-features = false, features = [ "sink", ], optional = true } pin-project-lite = { version = "0.2.13", optional = true } # websocket deps async-tungstenite = { version = "0.25.0", default-features = false, optional = true } # tls deps rustls-pki-types = { version = "1.7.0", optional = true } futures-rustls = { version = "0.25.1", optional = true } tokio-rustls = { version = "0.26.0", optional = true } tokio = { version = "1.37.0", features = ["io-util"], optional = true } # serde serde = { version = "1.0.197", features = ["derive"], optional = true } [dev-dependencies] smol = "2.0.0"