[package]
edition = "2024"
rust-version = "1.87.0"
name = "boomnet"
version = "0.0.76"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Framework for building low latency clients on top of TCP."
documentation = "https://docs.rs/boomnet"
readme = "README.md"
keywords = [
"http",
"ktls",
"client",
"websocket",
"mio",
]
categories = [
"network-programming",
"web-programming::websocket",
"web-programming::http-client",
]
license = "MIT"
repository = "https://github.com/HaveFunTrading/boomnet"
[package.metadata.docs.rs]
all-features = true
[features]
default = []
ext = []
http = [
"dep:http",
"httparse",
"memchr",
"itoa",
]
ktls = [
"openssl",
"dep:openssl-sys",
"dep:foreign-types",
"dep:libc",
"dep:openssl-src",
]
mio = ["dep:mio"]
openssl = [
"dep:openssl",
"dep:openssl-probe",
]
rustls-native = [
"rustls",
"rustls-native-certs",
]
rustls-webpki = [
"rustls",
"webpki-roots",
]
ws = [
"rand",
"base64",
"dep:http",
"httparse",
]
[lib]
name = "boomnet"
path = "src/lib.rs"
[[example]]
name = "endpoint_with_timer"
path = "examples/endpoint_with_timer.rs"
[[example]]
name = "http_single_connection"
path = "examples/http_single_connection.rs"
[[example]]
name = "io_service_dispatch"
path = "examples/io_service_dispatch.rs"
[[example]]
name = "io_service_with_async_dns"
path = "examples/io_service_with_async_dns.rs"
[[example]]
name = "io_service_with_auto_disconnect"
path = "examples/io_service_with_auto_disconnect.rs"
[[example]]
name = "io_service_with_context"
path = "examples/io_service_with_context.rs"
[[example]]
name = "io_service_with_context_ktls"
path = "examples/io_service_with_context_ktls.rs"
[[example]]
name = "io_service_with_direct_selector"
path = "examples/io_service_with_direct_selector.rs"
[[example]]
name = "io_service_without_context"
path = "examples/io_service_without_context.rs"
[[example]]
name = "polymorphic_endpoints"
path = "examples/polymorphic_endpoints.rs"
[[example]]
name = "recorded_stream"
path = "examples/recorded_stream.rs"
[[example]]
name = "replay_stream"
path = "examples/replay_stream.rs"
[[example]]
name = "ws_client"
path = "examples/ws_client.rs"
[[example]]
name = "ws_client_blocking"
path = "examples/ws_client_blocking.rs"
[[example]]
name = "ws_client_ktls"
path = "examples/ws_client_ktls.rs"
[[bench]]
name = "latency"
path = "benches/latency/main.rs"
harness = false
[dependencies.base64]
version = "0.21.5"
optional = true
[dependencies.core_affinity]
version = "0.8.3"
[dependencies.foreign-types]
version = "0.3.1"
optional = true
[dependencies.http]
version = "1.0.0"
optional = true
[dependencies.httparse]
version = "1.8.0"
optional = true
[dependencies.itoa]
version = "1.0.15"
optional = true
[dependencies.libc]
version = "0.2"
optional = true
[dependencies.log]
version = "0.4.20"
[dependencies.memchr]
version = "2.7.4"
optional = true
[dependencies.mio]
version = "1"
features = [
"net",
"os-poll",
]
optional = true
[dependencies.openssl]
version = "0.10.70"
features = ["vendored"]
optional = true
[dependencies.openssl-probe]
version = "0.1.6"
optional = true
[dependencies.openssl-sys]
version = "0.9"
optional = true
[dependencies.pnet]
version = "0.34.0"
[dependencies.rand]
version = "0.9.1"
optional = true
[dependencies.rustls]
version = "0.22.4"
optional = true
[dependencies.rustls-native-certs]
version = "0.7.0"
optional = true
[dependencies.smallstr]
version = "0.3.1"
[dependencies.smallvec]
version = "1.15.0"
[dependencies.socket2]
version = "0.5.5"
features = ["all"]
[dependencies.thiserror]
version = "1.0.50"
[dependencies.url]
version = "2.5.0"
[dependencies.webpki-roots]
version = "0.26.0"
optional = true
[dev-dependencies.ansi_term]
version = "0.12.1"
[dev-dependencies.anyhow]
version = "1"
[dev-dependencies.criterion]
version = "0.5.1"
[dev-dependencies.env_logger]
version = "0.10.1"
[dev-dependencies.idle]
version = "0.2.0"
[dev-dependencies.tungstenite]
version = "0.28.0"
[build-dependencies.openssl-src]
version = "300"
features = ["ktls"]
optional = true
default-features = false
[lints.clippy]
mem_replace_with_uninit = "allow"
uninit_assumed_init = "allow"
[profile.release]
lto = true
codegen-units = 1
debug = 2