pavex 0.1.21

A framework for building API services and web applications in Rust.
Documentation
[package]
name = "pavex"
version = "0.1.21"
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"

[features]
default = ["server", "server_request_id"]

server = ["dep:hyper", "dep:hyper-util", "dep:socket2"]
server_request_id = ["dep:uuid"]

[dependencies]
bytes = "1"
http = "1"
http-body = "1"
anyhow = "1"
futures-util = "0.3"
mime = "0.3"
thiserror = "1"
serde = { version = "1", features = ["derive"] }
pavex_macros = { path = "../pavex_macros", version = "0.1.21" }
paste = "1"
tracing = "0.1"
http-body-util = "0.1"
pin-project-lite = "0.2"
ubyte = { version = "0.10.4", features = ["serde"] }
pavex_bp_schema = { path = "../pavex_bp_schema", version = "=0.1.21" }
pavex_reflection = { path = "../pavex_reflection", version = "=0.1.21" }
persist_if_changed = { path = "../persist_if_changed", version = "0.1.21" }

# Route parameters
matchit = { version = "0.7", package = "pavex_matchit" }
percent-encoding = "2"

# Query parameters
serde_html_form = "0.2"

# Json body extractor
serde_json = "1"
serde_path_to_error = "0.1"

# Blueprint builder
indexmap = { version = "2", features = ["serde"] }
fs-err = "2.7.0"
ron = "0.8"

# Server request id
uuid = { version = "1", features = ["v7"], optional = true }

tokio = { version = "1.32", features = ["net", "sync", "rt", "time"] }
hyper = { version = "1", features = ["full"], optional = true }
hyper-util = { version = "0.1", features = ["tokio", "server", "server-auto"], optional = true }
socket2 = { version = "0.5.3", optional = true }
smallvec = "1"

[dev-dependencies]
tokio = { version = "1", features = ["macros"] }
insta = "1.29.0"
tracing = "0.1"
reqwest = "0.11"
itertools = "0.12"