[package]
edition = "2024"
name = "h3x"
version = "0.4.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Peer-to-peer DHTTP/3 transport over QUIC"
readme = "README.md"
keywords = [
"async",
"quic",
"http3",
]
categories = [
"network-programming",
"asynchronous",
]
license = "Apache-2.0"
repository = "https://github.com/genmeta/h3x"
[features]
default = [
"dquic",
"hyper",
]
dquic = [
"dep:dquic",
"dep:arc-swap",
"dep:async-channel",
"dep:either",
"dep:globset",
"dep:peg",
"tokio/time",
]
hyper = [
"dep:http-body",
"dep:http-body-util",
"dep:hyper",
]
ipc = [
"rpc",
"dep:nix",
"dep:smallvec",
"tokio/net",
]
rpc = [
"dep:remoc",
"serde",
"bytes/serde",
]
serde = ["dep:serde"]
testing = []
webtransport = []
[lib]
name = "h3x"
path = "src/lib.rs"
[[test]]
name = "module_paths"
path = "tests/module_paths.rs"
[[test]]
name = "peer_settings"
path = "tests/peer_settings.rs"
[dependencies.arc-swap]
version = "1"
optional = true
[dependencies.async-channel]
version = "2"
optional = true
[dependencies.bon]
version = "3"
[dependencies.bytes]
version = "1"
[dependencies.dashmap]
version = "6"
[dependencies.dhttp-identity]
version = "0.2.0"
[dependencies.dquic]
version = "0.5.1"
optional = true
[dependencies.either]
version = "1"
optional = true
[dependencies.futures]
version = "0.3"
[dependencies.globset]
version = "0.4"
optional = true
[dependencies.httlib-huffman]
version = "0.3"
[dependencies.http]
version = "1"
[dependencies.http-body]
version = "1"
optional = true
[dependencies.http-body-util]
version = "0.1"
optional = true
[dependencies.hyper]
version = "1"
features = ["http2"]
optional = true
[dependencies.nix]
version = "0.31"
features = [
"fs",
"socket",
"uio",
]
optional = true
default-features = false
[dependencies.peg]
version = "0.8"
optional = true
[dependencies.pin-project-lite]
version = "0.2"
[dependencies.remoc]
version = "0.18"
features = [
"remoc_macro",
"rtc",
"serde",
]
optional = true
default-features = false
[dependencies.ring]
version = "0.17"
[dependencies.rustls]
version = "0.23"
features = [
"logging",
"std",
]
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
[dependencies.smallvec]
version = "1"
optional = true
[dependencies.snafu]
version = "0.9"
[dependencies.tokio]
version = "1"
features = [
"rt",
"macros",
"sync",
"io-util",
]
[dependencies.tokio-util]
version = "0.7"
features = [
"codec",
"io",
"rt",
]
[dependencies.tower-service]
version = "0.3"
[dependencies.tracing]
version = "0.1"
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.remoc]
version = "0.18"
features = ["default-codec-bincode"]
default-features = false
[dev-dependencies.rustls]
version = "0.23"
features = [
"ring",
"logging",
]
default-features = false
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.tokio]
version = "1"
features = [
"macros",
"test-util",
"io-util",
"rt-multi-thread",
]
[dev-dependencies.tracing-appender]
version = "0.2"
[dev-dependencies.tracing-subscriber]
version = "0.3"