[package]
edition = "2024"
rust-version = "1.95"
name = "wtx"
version = "0.44.3"
authors = ["Caio Fernandes <c410.f3r@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A collection of different transport implementations and related tools focused primarily on web technologies."
homepage = "https://c410-f3r.github.io/wtx"
documentation = "https://docs.rs/wtx"
readme = "README.md"
keywords = [
"api",
"database",
"http",
"tls",
"websocket",
]
categories = [
"asynchronous",
"database",
"network-programming",
"no-std",
"web-programming",
]
license = "MPL-2.0"
repository = "https://github.com/c410-f3r/wtx"
[package.metadata.docs.rs]
all-features = true
[features]
32-tuple-impls = []
_async-tests = [
"tokio/net",
"tokio/rt-multi-thread",
"tokio/time",
]
_bench = []
_hack = [
"aws-lc-rs?/aws-lc-sys",
"embassy-net?/medium-ip",
"embassy-net?/proto-ipv4",
]
_integration-tests = ["serde_json?/raw_value"]
_tracing-tree = [
"tracing",
"tracing-subscriber",
"tracing-tree",
]
aes-gcm = [
"aead",
"aes-gcm/aes",
]
arbitrary = [
"dep:arbitrary",
"arbitrary/derive_arbitrary",
"std",
]
asn1 = []
async-net = [
"dep:async-io",
"dep:async-net",
"futures-lite",
"std",
]
chacha20 = [
"dep:chacha20",
"chacha20/cipher",
"chacha20/rng",
]
chacha20poly1305 = [
"aead",
"dep:chacha20poly1305",
]
client-api-framework = []
crossbeam-channel = [
"crossbeam-channel/std",
"std",
]
crypto = []
crypto-aws-lc-rs = [
"dep:aws-lc-rs",
"crypto",
]
crypto-graviola = [
"crypto",
"dep:graviola",
"std",
]
crypto-ring = [
"crypto",
"dep:ring",
"ring/alloc",
]
crypto-rust-crypto = [
"aes-gcm",
"chacha20poly1305",
"crypto",
"ed25519-dalek",
"hkdf",
"p256",
"p384",
"rsa",
"sha1",
"sha2",
"x25519-dalek",
]
database = []
default = []
digest = [
"dep:digest",
"digest/mac",
]
ed25519-dalek = [
"dep:ed25519-dalek",
"ed25519-dalek?/digest",
"ed25519-dalek?/pkcs8",
]
embassy-net = [
"dep:embassy-net",
"embassy-net/tcp",
]
executor = ["std"]
flate2 = [
"dep:flate2",
"flate2/zlib-rs",
]
foldhash = [
"dep:foldhash",
"hashbrown?/default-hasher",
]
grpc = []
grpc-client = [
"grpc",
"http-client-pool",
]
grpc-server = [
"grpc",
"http-server-framework",
]
hashbrown = [
"dep:hashbrown",
"hashbrown/default-hasher",
"hashbrown/inline-more",
]
hkdf = [
"crypto-common",
"digest",
"dep:hkdf",
"hmac",
]
http = []
http-client-pool = [
"http2",
"std",
]
http-cookie = ["http"]
http-cookie-secure = [
"aes-gcm",
"crypto",
"digest",
"http-cookie",
]
http-server-framework = ["http2"]
http-session = [
"http-cookie-secure",
"secret",
"serde_json",
]
http2 = [
"foldhash",
"hashbrown",
"http",
]
macros = ["dep:wtx-macros"]
mysql = [
"database",
"digest",
"foldhash",
"hashbrown",
"rand_core",
"rsa",
"sha1",
"sha2",
]
nightly = []
optimization = [
"memchr",
"simdutf8",
]
p256 = [
"dep:p256",
"p256?/arithmetic",
"p256?/ecdh",
"p256?/pkcs8",
"p256?/ecdsa",
"elliptic-curve",
"pkcs8",
"rand_core",
"signature",
]
p384 = [
"dep:p384",
"p384?/arithmetic",
"p384?/ecdh",
"p384?/pkcs8",
"p384?/ecdsa",
"elliptic-curve",
"pkcs8",
"rand_core",
"signature",
]
portable-atomic = [
"dep:portable-atomic",
"portable-atomic/fallback",
]
portable-atomic-util = [
"portable-atomic",
"dep:portable-atomic-util",
"portable-atomic-util/alloc",
]
postgres = [
"crypto",
"crypto-common",
"database",
"digest",
"foldhash",
"hashbrown",
"hmac",
"sha2",
]
quick-protobuf = [
"quick-protobuf/std",
"std",
]
rsa = [
"dep:rsa",
"rsa/encoding",
"pkcs8",
"signature",
"spki",
]
rust_decimal = [
"dep:rust_decimal",
"rust_decimal/maths",
]
rustls = [
"dep:rustls",
"rustls-pki-types",
]
schema-manager = ["database"]
schema-manager-dev = ["schema-manager"]
secret = [
"aes-gcm",
"crypto",
"libc",
"sha2",
]
serde = [
"dep:serde",
"serde/alloc",
"serde/derive",
]
serde_json = [
"serde",
"dep:serde_json",
"serde_json/alloc",
"serde_json/std",
"std",
]
std = ["wtx-macros?/std"]
tokio = [
"dep:tokio",
"tokio/io-util",
"tokio/net",
"tokio/rt",
"std",
"tokio/sync",
"tokio/time",
]
tokio-rustls = [
"crypto-ring",
"rustls",
"rustls-pemfile/std",
"rustls-pki-types",
"tokio",
"dep:tokio-rustls",
"tokio-rustls/ring",
]
tracing = [
"dep:tracing",
"tracing/attributes",
]
tracing-subscriber = [
"dep:tracing-subscriber",
"tracing-subscriber/env-filter",
"tracing-subscriber/fmt",
]
tracing-tree = [
"std",
"dep:tracing-tree",
]
web-socket = ["http"]
web-socket-handshake = [
"crypto",
"httparse",
"sha1",
"web-socket",
]
x25519-dalek = [
"signature",
"dep:x25519-dalek",
]
x509 = [
"asn1",
"crypto",
"hashbrown",
]
[lib]
name = "wtx"
path = "src/lib.rs"
[[test]]
name = "embed-migrations"
path = "tests/embed-migrations.rs"
[dependencies.aead]
version = "0.6.0-rc.10"
optional = true
default-features = false
[dependencies.aes-gcm]
version = "0.11.0-rc.3"
optional = true
default-features = false
[dependencies.arbitrary]
version = "1.0"
optional = true
default-features = false
[dependencies.argon2]
version = "0.6.0-rc.8"
optional = true
default-features = false
[dependencies.async-io]
version = "2.0"
optional = true
default-features = false
[dependencies.async-net]
version = "2.0"
optional = true
default-features = false
[dependencies.aws-lc-rs]
version = "1.0"
optional = true
default-features = false
[dependencies.chacha20]
version = "0.10"
optional = true
default-features = false
[dependencies.chacha20poly1305]
version = "0.11.0-rc.3"
optional = true
default-features = false
[dependencies.crossbeam-channel]
version = "0.5"
optional = true
default-features = false
[dependencies.crypto-common]
version = "0.2"
optional = true
default-features = false
[dependencies.digest]
version = "0.11"
optional = true
default-features = false
[dependencies.ed25519-dalek]
version = "3.0.0-pre.6"
optional = true
default-features = false
[dependencies.elliptic-curve]
version = "0.14.0-rc.30"
optional = true
default-features = false
[dependencies.embassy-net]
version = "0.5"
optional = true
default-features = false
[dependencies.embassy-time]
version = "0.3"
optional = true
default-features = false
[dependencies.fastrand]
version = "2.0"
optional = true
default-features = false
[dependencies.flate2]
version = "1.0"
optional = true
default-features = false
[dependencies.foldhash]
version = "0.2"
optional = true
default-features = false
[dependencies.futures-lite]
version = "2.0"
optional = true
default-features = false
[dependencies.getrandom]
version = "0.4"
optional = true
default-features = false
[dependencies.graviola]
version = "0.3"
optional = true
default-features = false
[dependencies.hashbrown]
version = "0.17"
optional = true
default-features = false
[dependencies.hkdf]
version = "0.13"
optional = true
default-features = false
[dependencies.hmac]
version = "0.13"
optional = true
default-features = false
[dependencies.httparse]
version = "1.0"
optional = true
default-features = false
[dependencies.libc]
version = "0.2"
optional = true
default-features = false
[dependencies.matchit]
version = "0.8"
optional = true
default-features = false
[dependencies.memchr]
version = "2.0"
optional = true
default-features = false
[dependencies.p256]
version = "0.14.0-rc.8"
optional = true
default-features = false
[dependencies.p384]
version = "0.14.0-rc.8"
optional = true
default-features = false
[dependencies.parking_lot]
version = "0.12"
optional = true
default-features = false
[dependencies.pkcs8]
version = "0.11.0-rc.11"
optional = true
default-features = false
[dependencies.portable-atomic]
version = "1.0"
optional = true
default-features = false
[dependencies.portable-atomic-util]
version = "0.2"
optional = true
default-features = false
[dependencies.quick-protobuf]
version = "0.8"
optional = true
default-features = false
[dependencies.rand_core]
version = "0.10"
optional = true
default-features = false
[dependencies.ring]
version = "0.17"
optional = true
default-features = false
[dependencies.rsa]
version = "0.10.0-rc.12"
optional = true
default-features = false
[dependencies.rust_decimal]
version = "1.0"
optional = true
default-features = false
[dependencies.rustls]
version = "0.23"
optional = true
default-features = false
[dependencies.rustls-pemfile]
version = "2.0"
optional = true
default-features = false
[dependencies.rustls-pki-types]
version = "1.0"
optional = true
default-features = false
[dependencies.serde]
version = "1.0"
optional = true
default-features = false
[dependencies.serde_json]
version = "1.0"
optional = true
default-features = false
[dependencies.sha1]
version = "0.11"
optional = true
default-features = false
[dependencies.sha2]
version = "0.11"
optional = true
default-features = false
[dependencies.sha3]
version = "0.11"
optional = true
default-features = false
[dependencies.signature]
version = "3.0.0-rc.10"
optional = true
default-features = false
[dependencies.simdutf8]
version = "0.1"
optional = true
default-features = false
[dependencies.spki]
version = "0.8"
optional = true
default-features = false
[dependencies.tokio]
version = "1.0"
optional = true
default-features = false
[dependencies.tokio-rustls]
version = "0.26"
optional = true
default-features = false
[dependencies.tracing]
version = "0.1"
optional = true
default-features = false
[dependencies.tracing-subscriber]
version = "0.3"
optional = true
default-features = false
[dependencies.tracing-tree]
version = "0.4"
optional = true
default-features = false
[dependencies.uuid]
version = "1.0"
optional = true
default-features = false
[dependencies.webpki-roots]
version = "1.0"
optional = true
default-features = false
[dependencies.wtx-macros]
version = "0.6.6"
optional = true
default-features = false
[dependencies.x25519-dalek]
version = "3.0.0-pre.6"
optional = true
default-features = false
[dev-dependencies.tokio]
version = "1.0"
features = [
"macros",
"rt-multi-thread",
"sync",
]
default-features = false
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(kani)"]