sword-web 0.3.0

Web controllers and runtime for the Sword framework
[package]
name = "sword-web"
version.workspace = true
edition.workspace = true
authors = ["luciano revillod <lrevillod2022@alu.uct.cl>"]
description = "Web controllers and runtime for the Sword framework"
repository.workspace = true
homepage.workspace = true
documentation = "https://docs.rs/sword"
keywords = ["sword", "web", "framework", "axum", "http"]
categories = ["web-programming", "web-programming::http-server"]
readme = "README.md"
license.workspace = true
rust-version.workspace = true

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
tokio = { workspace = true }
axum = { workspace = true }

sword-core = { workspace = true }
sword-macros = { workspace = true, features = ["web-controllers"] }

serde = { workspace = true }
serde_json = { workspace = true }
thiserror = { workspace = true }
chrono = { workspace = true }

form_urlencoded = { workspace = true }
serde_urlencoded = { workspace = true }
mime = { workspace = true }
bytes = { workspace = true }
http-body-util = { workspace = true }

validator = { workspace = true, optional = true }

tracing = { workspace = true }
inventory = { workspace = true }
utoipa-swagger-ui = { version = "9.0.2", features = ["axum"], optional = true }
tower = { workspace = true }

[dependencies.sword-layers]
workspace = true
features = [
    "tracing",
    "not-found",
    "request-id",
    "cookies",
    "req-timeout",
    "body-limit",
]

[features]
default = []

multipart = ["axum/multipart"]
validation-validator = ["dep:validator"]
swagger-ui = ["dep:utoipa-swagger-ui"]

[dev-dependencies]
axum-test = { workspace = true }
tower-http = { workspace = true, features = ["limit", "cors", "trace"] }