# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[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
