[package]
edition = "2024"
name = "tako-rs-plugins"
version = "2.0.0"
authors = ["Daniel Boros <dancixx@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Internal plugin and concrete-middleware implementations for tako-rs. Use the `tako-rs` umbrella crate instead."
homepage = "https://github.com/rust-dd/tako"
documentation = "https://docs.rs/tako-rs-plugins"
readme = "README.md"
keywords = [
"web",
"framework",
"middleware",
"plugin",
"http",
]
categories = [
"web-programming",
"web-programming::http-server",
"asynchronous",
]
license = "MIT"
repository = "https://github.com/rust-dd/tako"
resolver = "2"
[features]
ahash = [
"dep:ahash",
"tako-rs-core/ahash",
]
compio = [
"dep:compio",
"tako-rs-core/compio",
]
default = []
hmac-signature = ["dep:hmac"]
ip-filter = ["dep:ipnet"]
json-schema = ["dep:jsonschema"]
jwt-simple = ["dep:jwt-simple"]
metrics-opentelemetry = [
"dep:opentelemetry",
"dep:opentelemetry_sdk",
"dep:opentelemetry-otlp",
"plugins",
"signals",
]
metrics-prometheus = [
"dep:prometheus",
"plugins",
"signals",
]
multipart = [
"dep:multer",
"tako-rs-extractors/multipart",
]
plugins = [
"dep:brotli",
"dep:flate2",
"tako-rs-core/plugins",
]
signals = ["tako-rs-core/signals"]
zstd = [
"dep:zstd",
"plugins",
]
[lib]
name = "tako_rs_plugins"
path = "src/lib.rs"
doctest = false
[dependencies.ahash]
version = "0.8.12"
features = ["serde"]
optional = true
[dependencies.anyhow]
version = "1.0.98"
[dependencies.async-trait]
version = "0.1.88"
[dependencies.base64]
version = "0.22.1"
[dependencies.brotli]
version = "8.0.1"
optional = true
[dependencies.bytes]
version = "1.10.1"
[dependencies.compio]
version = "0.18.0"
features = [
"macros",
"rustls",
"time",
"fs",
"net",
]
optional = true
[dependencies.cookie]
version = "0.18.1"
features = [
"private",
"signed",
]
[dependencies.flate2]
version = "1.1.2"
optional = true
[dependencies.futures-util]
version = "0.3.31"
[dependencies.hmac]
version = "0.12.1"
optional = true
[dependencies.http]
version = "1.3.1"
[dependencies.http-body]
version = "1.0.1"
[dependencies.http-body-util]
version = "0.1.3"
[dependencies.httpdate]
version = "1.0.3"
[dependencies.ipnet]
version = "2.11.0"
optional = true
[dependencies.jsonschema]
version = "0.30"
optional = true
default-features = false
[dependencies.mime]
version = "0.3.17"
[dependencies.multer]
version = "3.1.0"
optional = true
[dependencies.once_cell]
version = "1.21.3"
[dependencies.opentelemetry]
version = "0.31.0"
optional = true
[dependencies.opentelemetry-otlp]
version = "0.31.0"
features = [
"metrics",
"http-proto",
]
optional = true
[dependencies.opentelemetry_sdk]
version = "0.31.0"
features = ["rt-tokio"]
optional = true
[dependencies.parking_lot]
version = "0.12.5"
[dependencies.pin-project-lite]
version = "0.2.16"
[dependencies.prometheus]
version = "0.13.4"
optional = true
[dependencies.scc]
version = "3.4.8"
[dependencies.serde]
version = "1.0.219"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.140"
[dependencies.sha1]
version = "0.10.6"
[dependencies.sha2]
version = "0.10.9"
[dependencies.smallvec]
version = "1.15.1"
[dependencies.subtle]
version = "2.6.1"
[dependencies.tako-rs-core]
version = "2.0.0"
[dependencies.tako-rs-extractors]
version = "2.0.0"
[dependencies.tokio]
version = "1.52.1"
features = ["full"]
[dependencies.tokio-stream]
version = "0.1.17"
[dependencies.tracing]
version = "0.1.41"
[dependencies.url]
version = "2.5.4"
[dependencies.urlencoding]
version = "2.1.3"
[dependencies.uuid]
version = "1.17.0"
features = ["v4"]
[dependencies.zstd]
version = "0.13.3"
optional = true
[target.'cfg(not(target_os = "freebsd"))'.dependencies.jwt-simple]
version = "0.12.12"
optional = true
[target.'cfg(target_os = "freebsd")'.dependencies.jwt-simple]
version = "0.12.12"
features = ["pure-rust"]
optional = true
default-features = false
[lints.clippy]
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
duration_suboptimal_units = "allow"
format_push_string = "allow"
match_same_arms = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
must_use_candidate = "allow"
needless_pass_by_value = "allow"
non_std_lazy_statics = "allow"
return_self_not_must_use = "allow"
similar_names = "allow"
struct_field_names = "allow"
too_many_lines = "allow"
trivially_copy_pass_by_ref = "allow"
unused_async = "allow"
[lints.clippy.pedantic]
level = "warn"
priority = -1