[package] name = "xitca-web" version = "0.6.2" edition = "2021" license = "Apache-2.0" description = "an async web framework" repository = "https://github.com/HFQR/xitca-web" keywords = ["xitca", "xitca-web"] authors = ["fakeshadow "] readme= "README.md" [features] default = ["http1"] # extended http versions. http1 = ["__server", "xitca-http/http1"] http2 = ["__server", "xitca-http/http2"] http3 = ["__server", "xitca-http/http3"] # linux io-uring async io. io-uring = ["__server", "xitca-server/io-uring"] # tls transport layer openssl = ["__server", "xitca-http/openssl", "xitca-tls/openssl"] rustls = ["__server", "xitca-http/rustls", "xitca-tls/rustls-no-crypto"] # params type extractor params = ["serde"] # json type extractor/respodner json = ["serde", "serde_json"] # urlencoded type extractor urlencoded = ["serde", "serde_urlencoded" ] # (de)compression middlewares compress-br = ["http-encoding/br"] compress-gz = ["http-encoding/gz"] compress-de = ["http-encoding/de"] # cookie handler type cookie = ["dep:cookie"] # multipart type extractor multipart = ["http-multipart"] # websocket type extractor/responder websocket = ["http-ws/stream", "tokio/time"] # static file serving file = ["file-raw", "http-file/default"] # static file serving without default file system file-raw = ["http-file", "nightly"] # rate-limit middleware rate-limit = ["http-rate"] # tracing logging middleware logger = ["tracing", "tracing-subscriber"] # nightly rust required feature. # # IMPORTANT note when utilizing nightly feature: # nightly feature is unstable and would not take part in semver practice. all breaking change # origin from it would be seen as non breaking from stable release point of view. nightly = [] # macro code generation codegen = ["xitca-codegen"] # experimental tower-http Layer compat tower-http-compat = ["tower-service", "tower-layer", "http-body"] # (de)serialization shared feature. serde = ["dep:serde"] # private http server feature __server = ["xitca-http/runtime", "xitca-server"] [dependencies] xitca-http = { version = "0.6.0", features = ["router"], default-features = false } xitca-service = { version = "0.2.0", features = ["alloc", "std"] } xitca-unsafe-collection = "0.2.0" futures-core = "0.3" pin-project-lite = "0.2.9" tokio = { version = "1", features = ["rt", "sync"] } # http server xitca-server = { version = "0.4.0", optional = true } # tls xitca-tls = { version = "0.4.0", optional = true } # (de)serialization shared. serde = { version = "1", optional = true } # json serde_json = { version = "1", optional = true } # urlencoded serde_urlencoded = { version = "0.7.1", optional = true } # compress-x http-encoding = { version = "0.2", optional = true } # cookie cookie = { version = "0.18", features = ["percent-encode", "secure"], optional = true } # multipart http-multipart = { version = "0.1", optional = true } # websocket http-ws = { version = "0.3", optional = true } # static file http-file = { version = "0.1", default-features = false ,optional = true } # rate limit http-rate = { version = "0.1", optional = true } # logger tracing = { version = "0.1", optional = true } tracing-subscriber = { version = "0.3", optional = true } # codegen xitca-codegen = { version = "0.3.1", optional = true } # tower-http-compat tower-service = { version = "0.3", optional = true } tower-layer = { version = "0.3", optional = true } http-body = { version = "1", optional = true } [dev-dependencies] xitca-codegen = { version = "0.3" } futures-util = { version = "0.3", features = ["alloc"] } serde = { version = "1.0.137", features = ["derive"] } tokio = { version = "1", features = ["macros"] } tower-http = { version = "0.5", features = ["fs", "set-status"] } tracing = "0.1" [package.metadata.docs.rs] all-features = true