tiny_http_fork 0.12.10

Low level HTTP server library FORK
[package]
name = "tiny_http_fork"
version = "0.12.10"
authors = ["pierre.krieger1708@gmail.com","Corey Farwell <coreyf@rwell.org>", "Aleksandr Morozov <alex@4neko.org>"]
description = "Low level HTTP server library FORK"
documentation = "https://tiny-http.github.io/tiny-http/tiny_http_fork/index.html"
keywords = ["http", "server", "web"]
license = "MIT OR Apache-2.0"
repository = "https://codeberg.org/4neko/tiny-http-fork"
edition = "2024"
rust-version = "1.85"

[features]
default = ["task_pool_legacy"]

# allows the UTF-8 in headers except some headers
allow_utf8_headers = []

# legacy realization of a task pool
# does not limit the maximum amount of threads
# does not restart thread which paniced, it will be re-created
# cleans unused threads
task_pool_legacy = []

# new realization based on multi-receiver MPSC crossbeam
# based on crossbeam MPSC
# limits the amount of spawned threads
# restarts the thread if it crashes and reports error to log
# starts new threads when task "pressure" increases
# cleans unused threads
task_pool_channel = ["dep:crossbeam", "dep:nix"]

ssl = ["ssl-rustls"]
ssl-openssl = ["dep:openssl", "dep:zeroize"]
ssl-rustls = ["dep:rustls", "dep:rustls-pemfile", "dep:zeroize"]
ssl-native-tls = ["dep:native-tls", "dep:zeroize"]

log = ["dep:log"]
log_stdout = []

[dependencies]
ascii = "1.1"
chunked_transfer = "1"
httpdate = "1.0"

crossbeam = { version = "0.8", features = ["std"], optional = true }
nix = { version = "0.31", features = ["signal"], optional = true }

log = { version = "0.4", optional = true }
openssl = { version = "0.10", optional = true }
rustls = { version = "0.23", optional = true }
rustls-pemfile = { version = "2.2", optional = true }
zeroize = { version = "1", optional = true }
native-tls = { version = "0.2", optional = true }

[dev-dependencies]
rustc-serialize = "0.3"
sha1 = "0.11.0"
fdlimit = "0.3"
tempfile = "~3.27"
rand = "0.10"

divan = "0.1.21"

[package.metadata.docs.rs]
# Enable just one SSL implementation
features = ["ssl-rustls", "task_pool_channel"]

[[example]]
name = "hello-world"
required-features = ["log"]

[[example]]
name = "php-cgi"
required-features = ["log"]

[[example]]
name = "readme-example"
required-features = ["log"]

[[example]]
name = "serve-root"
required-features = ["log"]

[[example]]
name = "ssl"
required-features = ["log", "ssl-rustls"]

[[example]]
name = "websockets"
required-features = ["log"]

[[bench]]
name = "bench"
harness = false