static-web-server 2.41.0

A cross-platform, high-performance and asynchronous web server for static files-serving.
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.85.0"
name = "static-web-server"
version = "2.41.0"
authors = ["Jose Quintana <https://joseluisq.net>"]
build = "build.rs"
include = [
    "src/**/*.rs",
    "build.rs",
    "Cargo.toml",
    "README.md",
    "LICENSE-MIT",
    "LICENSE-APACHE",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A cross-platform, high-performance and asynchronous web server for static files-serving."
homepage = "https://static-web-server.net"
readme = "README.md"
keywords = [
    "static-web-server",
    "file-server",
    "http-server",
]
categories = [
    "network-programming",
    "web-programming::http-server",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/static-web-server/static-web-server"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
    "--cfg",
    "tokio_unstable",
]
rustc-args = [
    "--cfg",
    "tokio_unstable",
]

[package.metadata.cross.target.x86_64-unknown-netbsd]
pre-build = [
    "mkdir -p /tmp/netbsd",
    "curl -fO https://ftp.uni-erlangen.de/netbsd/NetBSD-9.4/amd64/binary/sets/base.tar.xz",
    "tar -C /tmp/netbsd -xJf base.tar.xz",
    "cp /tmp/netbsd/usr/lib/libexecinfo.so /usr/local/x86_64-unknown-netbsd/lib",
    "rm -rf base.tar.xz /tmp/netbsd",
]

[features]
all = [
    "default",
    "experimental",
]
basic-auth = ["bcrypt"]
compression = [
    "compression-brotli",
    "compression-deflate",
    "compression-gzip",
    "compression-zstd",
]
compression-brotli = ["async-compression/brotli"]
compression-deflate = ["async-compression/deflate"]
compression-gzip = ["async-compression/deflate"]
compression-zstd = ["async-compression/zstd"]
default = [
    "compression",
    "http2",
    "directory-listing",
    "directory-listing-download",
    "basic-auth",
    "fallback-page",
]
directory-listing = ["chrono"]
directory-listing-download = [
    "async-tar",
    "compression-gzip",
    "directory-listing",
]
experimental = [
    "tokio-metrics-collector",
    "prometheus",
    "compact_str",
    "mini-moka",
]
fallback-page = []
http2 = [
    "tokio-rustls",
    "rustls-pki-types",
]

[lib]
name = "static_web_server"
path = "src/lib.rs"

[[bin]]
name = "static-web-server"
path = "src/bin/server.rs"
doc = false

[dependencies.aho-corasick]
version = "1.1.4"

[dependencies.anyhow]
version = "1.0"

[dependencies.async-compression]
version = "0.4"
features = [
    "brotli",
    "deflate",
    "gzip",
    "zstd",
    "tokio",
]
optional = true
default-features = false

[dependencies.async-tar]
version = "0.5.1"
optional = true

[dependencies.bcrypt]
version = "0.18.0"
optional = true

[dependencies.bytes]
version = "1.11.1"

[dependencies.chrono]
version = "0.4"
features = [
    "std",
    "clock",
]
optional = true
default-features = false

[dependencies.clap]
version = "4.5"
features = [
    "derive",
    "env",
]

[dependencies.clap_allgen]
version = "0.2.1"

[dependencies.compact_str]
version = "0.9.0"
optional = true

[dependencies.form_urlencoded]
version = "1.2"

[dependencies.futures-util]
version = "0.3"
default-features = false

[dependencies.globset]
version = "0.4.18"
features = ["serde1"]

[dependencies.headers]
version = "0.3"

[dependencies.http]
version = "0.2"

[dependencies.http-serde]
version = "1.1"

[dependencies.hyper]
version = "0.14"
features = [
    "stream",
    "http1",
    "http2",
    "tcp",
    "server",
]

[dependencies.listenfd]
version = "1.0"

[dependencies.maud]
version = "0.27"

[dependencies.mime_guess]
version = "2.0"

[dependencies.mini-moka]
version = "0.10.3"
optional = true

[dependencies.percent-encoding]
version = "2.3"

[dependencies.pin-project]
version = "1.1"

[dependencies.regex-lite]
version = "0.1.8"

[dependencies.rustls-pki-types]
version = "1.13.2"
optional = true

[dependencies.serde]
version = "1.0"
features = ["derive"]
default-features = false

[dependencies.serde_ignored]
version = "0.1"

[dependencies.serde_json]
version = "1.0"

[dependencies.serde_repr]
version = "0.1"

[dependencies.shadow-rs]
version = "1.4.0"

[dependencies.tokio]
version = "1"
features = [
    "rt-multi-thread",
    "macros",
    "fs",
    "io-util",
    "signal",
]
default-features = false

[dependencies.tokio-rustls]
version = "0.26"
features = [
    "logging",
    "tls12",
    "ring",
]
optional = true
default-features = false

[dependencies.tokio-util]
version = "0.7"
features = [
    "compat",
    "io",
]
default-features = false

[dependencies.toml]
version = "0.9"

[dependencies.tracing]
version = "0.1"
features = ["std"]
default-features = false

[dependencies.tracing-subscriber]
version = "0.3"
features = [
    "smallvec",
    "registry",
    "parking_lot",
    "fmt",
    "ansi",
    "tracing-log",
]
default-features = false

[dev-dependencies.bytes]
version = "1.11.1"

[dev-dependencies.serde_json]
version = "1.0"

[build-dependencies.shadow-rs]
version = "1.4.0"

[target.'cfg(all(target_env = "musl", target_pointer_width = "64"))'.dependencies.mimalloc]
version = "0.1.48"

[target."cfg(unix)".dependencies.prometheus]
version = "0.14.0"
optional = true
default-features = false

[target."cfg(unix)".dependencies.signal-hook]
version = "0.4.1"
features = ["extended-siginfo"]

[target."cfg(unix)".dependencies.signal-hook-tokio]
version = "0.4.0"
features = ["futures-v0_3"]
default-features = false

[target."cfg(unix)".dependencies.tokio-metrics-collector]
version = "0.3.1"
optional = true

[target."cfg(windows)".dependencies.windows-service]
version = "0.8"

[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1
debug = 0
debug-assertions = false
rpath = false
panic = "abort"
strip = true