[package]
edition = "2024"
rust-version = "1.95"
name = "wtx"
version = "0.45.0"
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",
"embassy-time?/std",
"openssl?/vendored",
]
_integration-tests = ["serde_json?/raw_value"]
_tracing-tree = [
"tracing",
"tracing-subscriber",
"tracing-tree",
]
arbitrary = [
"dep:arbitrary",
"arbitrary/derive_arbitrary",
"std",
]
argon2 = ["dep:argon2"]
asn1 = []
async-io = ["dep:async-io"]
async-net = [
"dep:async-io",
"dep:async-net",
"dep:futures-lite",
"std",
]
client-api-framework = []
crossbeam-channel = [
"dep:crossbeam-channel",
"crossbeam-channel/std",
"std",
]
crypto = []
crypto-aws-lc-rs = [
"dep:aws-lc-rs",
"crypto",
]
crypto-graviola = [
"crypto",
"dep:graviola",
"std",
]
crypto-openssl = [
"crypto",
"dep:openssl",
]
crypto-ring = [
"crypto",
"dep:ring",
"ring/alloc",
]
database = []
database-tests = [
"executor",
"getrandom",
"macros",
"postgres",
"schema-manager-dev",
]
default = []
embassy-net = [
"dep:embassy-net",
"embassy-net/tcp",
]
embassy-time = ["dep:embassy-time"]
executor = ["std"]
flate2 = [
"dep:flate2",
"flate2/zlib-rs",
]
foldhash = [
"dep:foldhash",
"hashbrown?/default-hasher",
]
getrandom = ["dep:getrandom"]
grpc = []
grpc-client = [
"grpc",
"http-client-pool",
]
grpc-server = [
"grpc",
"http-server-framework",
]
hashbrown = [
"dep:hashbrown",
"hashbrown/default-hasher",
"hashbrown/inline-more",
]
http = []
http-client-pool = [
"http2",
"std",
]
http-cookie = ["http"]
http-cookie-secure = [
"crypto",
"http-cookie",
]
http-server-framework = ["http2"]
http-session = [
"http-cookie-secure",
"secret",
"serde_json",
]
http2 = [
"foldhash",
"hashbrown",
"http",
]
httparse = ["dep:httparse"]
libc = ["dep:libc"]
macros = ["dep:wtx-macros"]
matchit = ["dep:matchit"]
memchr = ["dep:memchr"]
nightly = []
optimization = [
"memchr",
"simdutf8",
]
parking_lot = ["dep:parking_lot"]
portable-atomic = [
"dep:portable-atomic",
"portable-atomic/fallback",
]
portable-atomic-util = [
"portable-atomic",
"dep:portable-atomic-util",
"portable-atomic-util/alloc",
]
postgres = [
"crypto",
"database",
"foldhash",
"hashbrown",
]
quick-protobuf = [
"dep:quick-protobuf",
"quick-protobuf/std",
"std",
]
rand_core = ["dep:rand_core"]
ring = ["dep:ring"]
rust_decimal = [
"dep:rust_decimal",
"rust_decimal/maths",
]
rustls = [
"dep:rustls",
"rustls-pki-types",
]
rustls-pemfile = ["dep:rustls-pemfile"]
rustls-pki-types = ["dep:rustls-pki-types"]
schema-manager = ["database"]
schema-manager-dev = ["schema-manager"]
secret = [
"crypto",
"libc",
]
serde = [
"dep:serde",
"serde/alloc",
"serde/derive",
]
serde_json = [
"serde",
"dep:serde_json",
"serde_json/alloc",
"serde_json/std",
"std",
]
sha3 = ["dep:sha3"]
simdutf8 = ["dep:simdutf8"]
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",
]
uuid = ["dep:uuid"]
web-socket = ["http"]
web-socket-handshake = [
"crypto",
"httparse",
"web-socket",
]
webpki-roots = ["dep:webpki-roots"]
wtx-macros = ["dep:wtx-macros"]
x509 = [
"asn1",
"crypto",
"hashbrown",
]
[lib]
name = "wtx"
path = "src/lib.rs"
[[test]]
name = "embed-migrations"
path = "tests/embed-migrations.rs"
[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.crossbeam-channel]
version = "0.5"
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.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.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.openssl]
version = "0.10"
optional = true
default-features = false
[dependencies.parking_lot]
version = "0.12"
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.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.sha3]
version = "0.11"
optional = true
default-features = false
[dependencies.simdutf8]
version = "0.1"
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.7.0"
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)"]