mirror of
https://github.com/static-web-server/static-web-server.git
synced 2026-01-25 05:06:33 +00:00
145 lines
4.9 KiB
TOML
145 lines
4.9 KiB
TOML
[package]
|
|
name = "static-web-server"
|
|
version = "2.40.0"
|
|
edition = "2024"
|
|
rust-version = "1.85.0"
|
|
authors = ["Jose Quintana <https://joseluisq.net>"]
|
|
license = "MIT OR Apache-2.0"
|
|
description = "A cross-platform, high-performance and asynchronous web server for static files-serving."
|
|
repository = "https://github.com/static-web-server/static-web-server"
|
|
readme = "README.md"
|
|
homepage = "https://static-web-server.net"
|
|
keywords = [
|
|
"static-web-server",
|
|
"file-server",
|
|
"http-server"
|
|
]
|
|
categories = ["network-programming", "web-programming::http-server"]
|
|
include = [
|
|
"src/**/*.rs",
|
|
"build.rs",
|
|
"Cargo.toml",
|
|
"README.md",
|
|
"LICENSE-MIT",
|
|
"LICENSE-APACHE"
|
|
]
|
|
autotests = true
|
|
autoexamples = true
|
|
build = "build.rs"
|
|
|
|
[lib]
|
|
name = "static_web_server"
|
|
path = "src/lib.rs"
|
|
|
|
[[bin]]
|
|
name = "static-web-server"
|
|
path = "src/bin/server.rs"
|
|
doc = false
|
|
|
|
[features]
|
|
# All features enabled by default
|
|
default = ["compression", "http2", "directory-listing", "directory-listing-download", "basic-auth", "fallback-page"]
|
|
# Include all features (used when building SWS binaries)
|
|
all = ["default", "experimental"]
|
|
# HTTP2
|
|
http2 = ["tokio-rustls", "rustls-pemfile"]
|
|
# Compression
|
|
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"]
|
|
# Directory listing
|
|
directory-listing = ["chrono"]
|
|
# Directory listing download
|
|
directory-listing-download = ["async-tar", "compression-gzip", "directory-listing"]
|
|
# Basic HTTP Authorization
|
|
basic-auth = ["bcrypt"]
|
|
# Fallback Page
|
|
fallback-page = []
|
|
# Experimental features (requires: `RUSTFLAGS="--cfg tokio_unstable"`)
|
|
# --experimental-metrics
|
|
experimental = ["tokio-metrics-collector", "prometheus", "compact_str", "mini-moka"]
|
|
|
|
[dependencies]
|
|
aho-corasick = "1.1.4"
|
|
anyhow = "1.0"
|
|
async-compression = { version = "0.4", default-features = false, optional = true, features = ["brotli", "deflate", "gzip", "zstd", "tokio"] }
|
|
async-tar = { version = "0.5.1", optional = true }
|
|
bcrypt = { version = "0.17", optional = true }
|
|
bytes = "1.11.0"
|
|
chrono = { version = "0.4", default-features = false, features = ["std", "clock"], optional = true }
|
|
clap = { version = "4.5", features = ["derive", "env"] }
|
|
clap_allgen = "0.2.1"
|
|
compact_str = { version = "0.9.0", optional = true }
|
|
form_urlencoded = "1.2"
|
|
futures-util = { version = "0.3", default-features = false }
|
|
globset = { version = "0.4.18", features = ["serde1"] }
|
|
headers = "0.3"
|
|
http = "0.2"
|
|
http-serde = "1.1"
|
|
hyper = { version = "0.14", features = ["stream", "http1", "http2", "tcp", "server"] }
|
|
listenfd = "1.0"
|
|
maud = { version = "0.27" }
|
|
mime_guess = "2.0"
|
|
mini-moka = { version = "0.10.3", optional = true }
|
|
percent-encoding = "2.3"
|
|
pin-project = "1.1"
|
|
regex-lite = "0.1.8"
|
|
rustls-pemfile = { version = "2.2", optional = true }
|
|
serde = { version = "1.0", default-features = false, features = ["derive"] }
|
|
serde_ignored = "0.1"
|
|
serde_json = "1.0"
|
|
serde_repr = "0.1"
|
|
shadow-rs = "1.4.0"
|
|
tokio = { version = "1", default-features = false, features = ["rt-multi-thread", "macros", "fs", "io-util", "signal"] }
|
|
tokio-rustls = { version = "0.26", optional = true, default-features = false, features = ["logging", "tls12", "ring"] }
|
|
tokio-util = { version = "0.7", default-features = false, features = ["compat", "io"] }
|
|
toml = "0.9"
|
|
tracing = { version = "0.1", default-features = false, features = ["std"] }
|
|
tracing-subscriber = { version = "0.3", default-features = false, features = ["smallvec", "registry", "parking_lot", "fmt", "ansi", "tracing-log"] }
|
|
|
|
[target.'cfg(all(target_env = "musl", target_pointer_width = "64"))'.dependencies.mimalloc]
|
|
version = "0.1.48"
|
|
|
|
[target.'cfg(unix)'.dependencies]
|
|
signal-hook = { version = "0.3", features = ["extended-siginfo"] }
|
|
signal-hook-tokio = { version = "0.3", features = ["futures-v0_3"], default-features = false }
|
|
tokio-metrics-collector = { version = "0.3.1", optional = true }
|
|
prometheus = { version = "0.14.0", default-features = false, optional = true }
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
windows-service = "0.8"
|
|
|
|
[dev-dependencies]
|
|
bytes = "1.11.0"
|
|
serde_json = "1.0"
|
|
|
|
[build-dependencies]
|
|
shadow-rs = "1.4.0"
|
|
|
|
[profile.release]
|
|
codegen-units = 1
|
|
debug = false
|
|
debug-assertions = false
|
|
lto = "fat"
|
|
opt-level = 3
|
|
panic = "abort"
|
|
rpath = false
|
|
strip = true
|
|
|
|
[package.metadata.docs.rs]
|
|
all-features = true
|
|
rustdoc-args = ["--cfg", "docsrs", "--cfg", "tokio_unstable"]
|
|
rustc-args = ["--cfg", "tokio_unstable"]
|
|
|
|
# Cross: workaround for https://github.com/cross-rs/cross/issues/1345
|
|
[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",
|
|
]
|