[package] name = "pavex" version.workspace = true description = "A framework for building API services and web applications in Rust." categories = [ "asynchronous", "network-programming", "web-programming::http-server", ] keywords = ["http", "web", "framework", "pavex", "rest"] edition.workspace = true repository.workspace = true license.workspace = true readme = "README.md" [lints.rust] unexpected_cfgs = { level = "allow", check-cfg = ['cfg(pavex_ide_hint)'] } [features] default = ["server", "server_request_id", "time", "cookie"] server = ["dep:hyper", "dep:hyper-util", "dep:socket2", "tokio/net"] cookie = ["dep:biscotti", "time"] server_request_id = ["dep:uuid"] time = ["dep:time"] [dependencies] bytes = { workspace = true } http = { workspace = true } http-body = { workspace = true } anyhow = { workspace = true } futures-util = { workspace = true } mime = { workspace = true } thiserror = { workspace = true } serde = { workspace = true, features = ["derive"] } pavex_macros = { path = "../pavex_macros", version = "0.1.53" } paste = { workspace = true } tracing = { workspace = true } http-body-util = { workspace = true } pin-project-lite = { workspace = true } ubyte = { workspace = true, features = ["serde"] } pavex_bp_schema = { path = "../pavex_bp_schema", version = "=0.1.53" } pavex_reflection = { path = "../pavex_reflection", version = "=0.1.53" } persist_if_changed = { path = "../persist_if_changed", version = "0.1.53" } # Route parameters matchit = { version = "0.7.5", package = "pavex_matchit" } percent-encoding = { workspace = true } # Query parameters serde_html_form = { workspace = true } # Json body extractor serde_json = { workspace = true } serde_path_to_error = { workspace = true } # Blueprint builder indexmap = { workspace = true, features = ["serde"] } fs-err = { workspace = true } ron = { workspace = true } # Cookies biscotti = { workspace = true, optional = true } # Server request id uuid = { workspace = true, features = ["v7"], optional = true } type-safe-id = { workspace = true } # Time facilities time = { workspace = true, features = ["serde", "std"], optional = true } tokio = { workspace = true, features = ["sync", "rt", "time"] } hyper = { workspace = true, features = ["full"], optional = true } hyper-util = { workspace = true, features = [ "tokio", "server", "server-auto", ], optional = true } socket2 = { workspace = true, optional = true } smallvec = { workspace = true } [dev-dependencies] tokio = { workspace = true, features = ["macros"] } insta = { workspace = true } tracing = { workspace = true } reqwest = { workspace = true } itertools = { workspace = true } pavex_tracing = { path = "../pavex_tracing" }