[package]
edition = "2024"
rust-version = "1.85"
name = "silent"
version = "2.13.0"
authors = ["Hubert Shelley <hubertshelley@163.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = """
Silent Web Framework
"""
homepage = "https://github.com/silent-rs/silent"
documentation = "https://docs.rs/silent/"
readme = "readme.md"
keywords = [
"web",
"web-framework",
]
categories = [
"web-programming::http-server",
"web-programming::websocket",
"network-programming",
"asynchronous",
]
license = "Apache-2.0"
repository = "https://github.com/silent-rs/silent"
resolver = "2"
[features]
admin = [
"server",
"sse",
"template",
"session",
]
cookie = ["dep:cookie"]
default = ["server"]
full = [
"admin",
"server",
"multipart",
"upgrade",
"sse",
"security",
"static",
"session",
"cookie",
"template",
"scheduler",
"grpc",
"tls",
"quic",
"metrics",
]
grpc = [
"upgrade",
"dep:tonic",
"dep:pin-project-lite",
"dep:pin-project",
"dep:tokio-stream",
"dep:async-lock",
"dep:async-global-executor",
]
metrics = ["dep:metrics"]
multipart = [
"server",
"dep:async-fs",
"dep:multer",
"dep:multimap",
"dep:tempfile",
"dep:textnonce",
]
quic = [
"tls",
"dep:quinn",
"dep:h3",
"dep:h3-quinn",
"dep:scru128",
"dep:rand",
"dep:tokio-stream",
]
scheduler = [
"server",
"dep:cron",
"dep:async-lock",
"dep:async-global-executor",
]
security = [
"dep:argon2",
"dep:pbkdf2",
"dep:aes-gcm",
"dep:aes",
"dep:rsa",
]
server = [
"tokio/fs",
"tokio/net",
"tokio/rt-multi-thread",
"tokio/signal",
"tokio/macros",
]
session = [
"cookie",
"dep:async-session",
"dep:async-lock",
]
sse = ["dep:pin-project"]
static = [
"server",
"dep:urlencoding",
"dep:async-compression",
"dep:async-fs",
]
template = ["dep:tera"]
test = [
"tokio/macros",
"tokio/rt",
]
tls = [
"dep:tokio-rustls",
"dep:rustls",
"dep:rustls-pemfile",
"dep:rustls-pki-types",
"server",
]
upgrade = [
"dep:async-tungstenite",
"dep:async-lock",
"dep:async-global-executor",
"dep:async-channel",
]
worker = [
"dep:worker",
"tokio/sync",
]
[lib]
name = "silent"
path = "src/lib.rs"
[[test]]
name = "integration"
path = "tests/integration.rs"
[[test]]
name = "net_server"
path = "tests/net_server.rs"
[[bench]]
name = "router"
path = "benches/router.rs"
[dependencies.aes]
version = "0.8"
optional = true
[dependencies.aes-gcm]
version = "0.10"
optional = true
[dependencies.anyhow]
version = "1"
[dependencies.argon2]
version = "0.5"
optional = true
[dependencies.async-channel]
version = "2"
optional = true
[dependencies.async-compression]
version = "0.4"
features = [
"futures-io",
"brotli",
"gzip",
]
optional = true
[dependencies.async-fs]
version = "2"
optional = true
[dependencies.async-global-executor]
version = "3"
optional = true
[dependencies.async-io]
version = "2"
[dependencies.async-lock]
version = "3"
optional = true
[dependencies.async-session]
version = "3"
optional = true
[dependencies.async-trait]
version = "0.1"
[dependencies.async-tungstenite]
version = "0.32"
features = ["tokio-runtime"]
optional = true
default-features = false
[dependencies.bytes]
version = "1"
[dependencies.chrono]
version = "0.4"
features = ["clock"]
default-features = false
[dependencies.cookie]
version = "0.18"
features = [
"secure",
"percent-encode",
]
optional = true
[dependencies.cron]
version = "0.15"
optional = true
[dependencies.futures]
version = "0.3"
[dependencies.futures-util]
version = "0.3"
[dependencies.h3]
version = "0.0.8"
optional = true
[dependencies.h3-quinn]
version = "0.0.10"
optional = true
[dependencies.headers]
version = "0.4"
[dependencies.http]
version = "1"
[dependencies.http-body]
version = "1"
[dependencies.http-body-util]
version = "0.1"
[dependencies.hyper]
version = "1"
features = ["full"]
[dependencies.hyper-util]
version = "0.1"
features = [
"server-auto",
"tokio",
]
[dependencies.memchr]
version = "2"
[dependencies.metrics]
version = "0.24"
optional = true
[dependencies.mime]
version = "0.3"
[dependencies.mime_guess]
version = "2"
[dependencies.multer]
version = "3"
optional = true
[dependencies.multimap]
version = "0.10"
features = ["serde"]
optional = true
[dependencies.once_cell]
version = "1"
features = ["std"]
default-features = false
[dependencies.pbkdf2]
version = "0.12"
features = ["simple"]
optional = true
[dependencies.pin-project]
version = "1"
optional = true
[dependencies.pin-project-lite]
version = "0.2"
optional = true
[dependencies.quinn]
version = "0.11"
optional = true
[dependencies.rand]
version = "0.10"
optional = true
[dependencies.rsa]
version = "0.9"
optional = true
[dependencies.rustls]
version = "0.23"
features = [
"logging",
"ring",
"std",
]
optional = true
default-features = false
[dependencies.rustls-pemfile]
version = "2"
optional = true
[dependencies.rustls-pki-types]
version = "1"
optional = true
[dependencies.scru128]
version = "3"
optional = true
package = "scru128"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_html_form]
version = "0.4"
[dependencies.serde_json]
version = "1"
[dependencies.smallvec]
version = "1"
[dependencies.tempfile]
version = "3"
optional = true
[dependencies.tera]
version = "1"
optional = true
[dependencies.textnonce]
version = "1"
optional = true
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
optional = true
[dependencies.tokio-rustls]
version = "0.26"
features = [
"logging",
"tls12",
]
optional = true
default-features = false
[dependencies.tokio-stream]
version = "0.1"
features = ["net"]
optional = true
[dependencies.tokio-util]
version = "0.7"
features = ["compat"]
[dependencies.tonic]
version = "0.14"
features = ["codegen"]
optional = true
default-features = false
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"chrono",
"env-filter",
]
[dependencies.url]
version = "2"
[dependencies.urlencoding]
version = "2"
optional = true
[dependencies.uuid]
version = "1"
[dependencies.worker]
version = "0.7"
optional = true
[dev-dependencies.criterion]
version = "0.8"
features = [
"async",
"async_tokio",
]
[dev-dependencies.tokio]
version = "1"
features = ["rt-multi-thread"]