[dependencies.base64]
optional = true
version = "0.22"
[dependencies.brotli]
optional = true
version = "7"
[dependencies.bytes]
version = "1"
[dependencies.compact_str]
version = "0.8.0"
[dependencies.dashmap]
version = "6"
[dependencies.flate2]
optional = true
version = "1"
[dependencies.futures-util]
default-features = false
features = ["sink"]
optional = true
version = "0.3"
[dependencies.h2]
default-features = false
optional = true
version = "0.4.5"
[dependencies.h3]
optional = true
version = "0.0.6"
[dependencies.h3-quinn]
optional = true
version = "0.0.7"
[dependencies.http]
version = "1.0"
[dependencies.kvarn_async]
version = "0.6.1"
[dependencies.kvarn_signal]
optional = true
version = "0.2.1"
[dependencies.kvarn_utils]
version = "0.6.1"
[dependencies.log]
version = "0.4"
[dependencies.memchr]
optional = true
version = "2"
[dependencies.mime]
version = "0.3"
[dependencies.mime_guess]
version = "2"
[dependencies.moka]
default-features = false
features = ["sync"]
version = "0.12"
[dependencies.percent-encoding]
version = "2"
[dependencies.quinn]
default-features = false
features = ["rustls", "log", "runtime-tokio"]
optional = true
version = "0.11.1"
[dependencies.rand]
features = ["small_rng"]
optional = true
version = "0.8"
[dependencies.rustls]
default-features = false
features = ["std", "ring", "logging", "tls12"]
optional = true
version = "0.23.8"
[dependencies.rustls-pemfile]
optional = true
version = "2.1"
[dependencies.rustls-webpki]
default-features = false
features = ["ring", "std"]
optional = true
version = "0.102"
[dependencies.sha-1]
optional = true
version = "0.10"
[dependencies.socket2]
features = ["all"]
optional = true
version = "0.5.3"
[dependencies.time]
features = ["parsing", "formatting", "macros"]
version = "0.3"
[dependencies.tokio]
features = ["rt", "io-util", "fs", "sync", "parking_lot", "time", "macros"]
version = "1.24"
[dependencies.tokio-tungstenite]
default-features = false
optional = true
version = "0.24"
[dependencies.tokio-uring]
features = ["bytes"]
optional = true
package = "kvarn-tokio-uring"
version = "0.4.0-alpha1"
[dependencies.tree_magic_mini]
features = ["tree_magic_db"]
version = "3"
[dependencies.zstd]
default-features = false
optional = true
version = "0.13"
[dev-dependencies.kvarn_testing]
version = "0.6.1"
[features]
all-compression = ["br", "gzip", "zstd"]
all-http = ["https", "http2", "http3"]
async-networking = ["tokio/net", "socket2"]
base = ["async-networking", "handover"]
br = ["brotli"]
default = ["full"]
full = ["all-http", "all-compression", "graceful-shutdown", "nonce", "websocket", "base"]
graceful-shutdown = ["handover"]
gzip = ["flate2"]
handover = ["kvarn_signal"]
http2 = ["h2", "https"]
http3 = ["h3", "h3-quinn", "quinn", "https"]
https = ["rustls", "rustls-pemfile", "rustls-webpki", "async-networking"]
nonce = ["rand", "base64", "memchr"]
uring = ["tokio-uring", "kvarn_signal/uring", "async-networking"]
websocket = ["tokio-tungstenite", "sha-1", "base64", "futures-util"]
zstd = ["dep:zstd"]
zstd-multithread = ["zstd/zstdmt"]
[lib]
name = "kvarn"
path = "src/lib.rs"
[package]
authors = ["Icelk <main@icelk.dev>"]
autobenches = false
autobins = false
autoexamples = false
autotests = false
build = false
categories = ["web-programming", "web-programming::http-server", "web-programming::websocket"]
description = "A forward-thinking fast web server designed to fit your needs, efficiently."
edition = "2021"
homepage = "https://kvarn.org/"
keywords = ["web", "web-server", "web-application", "web-framework"]
license = "Apache-2.0"
name = "kvarn"
readme = "README.md"
repository = "https://github.com/Icelk/kvarn/"
rust-version = "1.64"
version = "0.6.3"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[profile.dev.package.fancy-regex]
opt-level = 3
[profile.dev.package.regex]
opt-level = 3
[profile.distribution]
inherits = "release"
lto = true
strip = true
[target."cfg(unix)".dependencies.libc]
default-features = false
version = "0.2"
[[test]]
name = "byte-ranges"
path = "tests/byte-ranges.rs"
[[test]]
name = "cors"
path = "tests/cors.rs"
[[test]]
name = "extensions"
path = "tests/extensions.rs"
[[test]]
name = "nonce"
path = "tests/nonce.rs"
[[test]]
name = "shutdown"
path = "tests/shutdown.rs"