[package] name = "httpz" version = "0.0.6" description = "Code once, support every Rust webserver!" authors = ["Oscar Beaumont "] edition = "2021" license = "MIT" homepage = "https://github.com/oscartbeaumont/httpz" documentation = "https://docs.rs/httpz" repository = "https://github.com/oscartbeaumont/httpz" readme = "README.md" keywords = ["httpz", "async", "web", "http", "websockets"] categories = ["network-programming", "web-programming", "web-programming::http-server", "asynchronous", "development-tools"] [[example]] name = "basic" required-features = ["axum"] [[example]] name = "actix-web" required-features = ["actix-web"] [features] default = [] cookies = ["dep:cookie"] # TODO: Support for signed and/or encrypted cookies ws = [] # Async runtimes async-tungstenite = [] # TODO: Remove this? tokio-ws = ["dep:async-tungstenite", "async-tungstenite/tokio-runtime", "dep:sha1", "dep:base64", "dep:tokio", "ws"] # TODO: This feature shouldn't force tokio as the async runtime # TODO: Support other async runtimes # Webservers axum = ["dep:axum"] hyper = [] # TODO: "dep:hyper" actix-web = ["dep:actix-web"] poem = ["dep:poem"] rocket = ["dep:rocket"] warp = ["dep:warp"] lambda = ["dep:lambda_http", "dep:tower"] workers = ["dep:worker"] tauri = ["dep:tauri", "dep:percent-encoding", "dep:tokio"] # TODO: Remove tokio dep once my wry & Tauri PR's are merged vercel = ["dep:vercel_runtime"] [dependencies] # Webservers actix-web = { version = "4.3.1", optional = true, features = [] } axum = { version = "0.6.19", optional = true, features = [] } poem = { version = "1.3.56", optional = true, features = [] } rocket = { version = "0.5.0-rc.3", optional = true, features = [] } warp = { version = "0.3.5", optional = true, features = [] } lambda_http = { version = "0.8.1", optional = true, features = [] } tower = { version = "0.4.13", optional = true, features = [] } worker = { version = "0.0.17", optional = true, features = [] } tauri = { version = "1.4.1", optional = true, features = ["linux-protocol-headers"] } vercel_runtime = { version = "1.0.2", optional = true } # Core cookie = { version = "0.17.0", optional = true, features = ["percent-encode"] } http = { version = "0.2.9", features = [] } form_urlencoded = "1.2.0" async-tungstenite = { version = "0.23.0", optional = true } sha1 = { version = "0.10.5", optional = true } base64 = { version = "0.21.2", optional = true } tokio = { version = "1.29.1", features = [], default-features = false, optional = true } hyper = "0.14.27" # TODO: Remove this if possible or feature gate it. I think Axum needs it. futures = "0.3.28" thiserror = "1.0.43" percent-encoding = { version = "2.3.0", optional = true, features = [] } [dev-dependencies] tokio = { version = "1.29.1", features = ["macros", "rt-multi-thread", "fs"] } axum = { version = "0.6.19", features = [] } tower = { version = "0.4.13", features = [] } hyper = { version = "0.14.27", features = [] } actix-web = "4.3.1" [workspace] members = [ "./examples/cf-workers", "./examples/netlify/netlify/functions/demo", "./examples/tauri", "./examples/vercel" ]