[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 ", "Rob Ede ", ] 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", "unicode"] # 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"] # Full unicode support unicode = ["dep:regex", "actix-router/unicode"] # 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 = { version = "0.5", default-features = false, features = ["http"] } 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 = { version = "1.5.5", optional = true } regex-lite = "0.1" 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" [dev-dependencies] actix-files = "0.6" actix-test = { version = "0.1", features = ["openssl", "rustls-0_22"] } awc = { version = "3", features = ["openssl"] } brotli = "3.3.3" const-str = "0.5" criterion = { version = "0.5", features = ["html_reports"] } env_logger = "0.11" flate2 = "1.0.13" futures-util = { version = "0.3.17", default-features = false, features = ["std"] } rand = "0.8" rcgen = "0.12" rustls-pemfile = "2" serde = { version = "1.0", features = ["derive"] } static_assertions = "1" tls-openssl = { package = "openssl", version = "0.10.55" } tls-rustls = { package = "rustls", version = "0.22" } tokio = { version = "1.24.2", features = ["rt-multi-thread", "macros"] } zstd = "0.13" [[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