actix-web 4.5.1

Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust
Documentation
[package]
name = "actix-web"
version = "4.5.1"
description = "Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust"
authors = [
    "Nikolay Kim <fafhrd91@gmail.com>",
    "Rob Ede <robjtede@icloud.com>",
]
keywords = ["actix", "http", "web", "framework", "async"]
categories = [
    "network-programming",
    "asynchronous",
    "web-programming::http-server",
    "web-programming::websocket"
]
homepage = "https://actix.rs"
repository = "https://github.com/actix/actix-web"
license.workspace = true
edition.workspace = true
rust-version.workspace = true

[package.metadata.docs.rs]
rustdoc-args = ["--cfg", "docsrs"]
features = [
    "macros",
    "openssl",
    "rustls-0_20",
    "rustls-0_21",
    "rustls-0_22",
    "compress-brotli",
    "compress-gzip",
    "compress-zstd",
    "cookies",
    "secure-cookies",
]


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

[features]
default = ["macros", "compress-brotli", "compress-gzip", "compress-zstd", "cookies", "http2"]

# Brotli algorithm content-encoding support
compress-brotli = ["actix-http/compress-brotli", "__compress"]
# Gzip and deflate algorithms content-encoding support
compress-gzip = ["actix-http/compress-gzip", "__compress"]
# Zstd algorithm content-encoding support
compress-zstd = ["actix-http/compress-zstd", "__compress"]

# Routing and runtime proc macros
macros = ["actix-macros", "actix-web-codegen"]

# Cookies support
cookies = ["cookie"]

# Secure & signed cookies
secure-cookies = ["cookies", "cookie/secure"]

http2 = ["actix-http/http2"]

# TLS via OpenSSL
openssl = ["http2", "actix-http/openssl", "actix-tls/accept", "actix-tls/openssl"]

# TLS via Rustls v0.20
rustls = ["rustls-0_20"]
# TLS via Rustls v0.20
rustls-0_20 = ["http2", "actix-http/rustls-0_20", "actix-tls/accept", "actix-tls/rustls-0_20"]
# TLS via Rustls v0.21
rustls-0_21 = ["http2", "actix-http/rustls-0_21", "actix-tls/accept", "actix-tls/rustls-0_21"]
# TLS via Rustls v0.22
rustls-0_22 = ["http2", "actix-http/rustls-0_22", "actix-tls/accept", "actix-tls/rustls-0_22"]

# Internal (PRIVATE!) features used to aid testing and checking feature status.
# Don't rely on these whatsoever. They may disappear at anytime.
__compress = []

# io-uring feature only available for Linux OSes.
experimental-io-uring = ["actix-server/io-uring"]

[dependencies]
actix-codec = "0.5"
actix-macros = { version = "0.2.3", optional = true }
actix-rt = { version = "2.6", default-features = false }
actix-server = "2"
actix-service = "2"
actix-utils = "3"
actix-tls = { version = "3.3", default-features = false, optional = true }

actix-http = { version = "3.6", features = ["ws"] }
actix-router = "0.5"
actix-web-codegen = { version = "4.2", optional = true }

ahash = "0.8"
bytes = "1"
bytestring = "1"
cfg-if = "1"
cookie = { version = "0.16", features = ["percent-encode"], optional = true }
derive_more = "0.99.8"
encoding_rs = "0.8"
futures-core = { version = "0.3.17", default-features = false }
futures-util = { version = "0.3.17", default-features = false }
itoa = "1"
language-tags = "0.3"
log = "0.4"
mime = "0.3"
once_cell = "1.5"
pin-project-lite = "0.2.7"
regex = "1.5.5"
serde = "1.0"
serde_json = "1.0"
serde_urlencoded = "0.7"
smallvec = "1.6.1"
socket2 = "0.5"
time = { version = "0.3", default-features = false, features = ["formatting"] }
url = "2.1"

[[test]]
name = "test_server"
required-features = ["compress-brotli", "compress-gzip", "compress-zstd", "cookies"]

[[test]]
name = "compression"
required-features = ["compress-brotli", "compress-gzip", "compress-zstd"]

[[example]]
name = "basic"
required-features = ["compress-gzip"]

[[example]]
name = "uds"
required-features = ["compress-gzip"]

[[example]]
name = "on-connect"
required-features = []

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

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

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