[package]
edition = "2024"
name = "vespera"
version = "0.3.1"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A fully automated OpenAPI engine for Axum with zero-config route and schema discovery"
readme = false
license = "Apache-2.0"
repository = "https://github.com/dev-five-git/vespera"
resolver = "2"
[features]
cron = [
"dep:tokio-cron-scheduler",
"vespera_macro/cron",
]
default = [
"axum-extra/typed-header",
"axum-extra/form",
"axum-extra/query",
"axum-extra/multipart",
"axum-extra/cookie",
"validation",
"mimalloc",
]
inprocess = ["dep:vespera_inprocess"]
jni = [
"inprocess",
"dep:vespera_jni",
]
mimalloc = ["vespera_jni?/mimalloc"]
validation = [
"dep:garde",
"vespera_macro/validation",
]
[lib]
name = "vespera"
path = "src/lib.rs"
[[test]]
name = "derive_garde_emit"
path = "tests/derive_garde_emit.rs"
[[test]]
name = "jni_validation"
path = "tests/jni_validation.rs"
[[test]]
name = "multipart_wire"
path = "tests/multipart_wire.rs"
[[test]]
name = "serve_extension"
path = "tests/serve_extension.rs"
[[test]]
name = "trybuild_diagnostics"
path = "tests/trybuild_diagnostics.rs"
[[test]]
name = "validated_extractor"
path = "tests/validated_extractor.rs"
[[test]]
name = "validated_form_query_path"
path = "tests/validated_form_query_path.rs"
[[bench]]
name = "multipart_error"
path = "benches/multipart_error.rs"
harness = false
[[bench]]
name = "validation"
path = "benches/validation.rs"
harness = false
[dependencies.axum]
version = "0.8"
features = ["multipart"]
[dependencies.axum-extra]
version = "0.12"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.garde]
version = "0.23"
features = [
"email",
"url",
"pattern",
]
optional = true
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.tempfile]
version = "3"
[dependencies.tokio]
version = "1"
features = [
"net",
"rt",
"fs",
"io-util",
]
[dependencies.tokio-cron-scheduler]
version = "0.15"
optional = true
[dependencies.tower-layer]
version = "0.3"
[dependencies.tower-service]
version = "0.3"
[dependencies.vespera_core]
version = "0.3.1"
[dependencies.vespera_inprocess]
version = "0.3.1"
optional = true
[dependencies.vespera_jni]
version = "0.3.1"
optional = true
[dependencies.vespera_macro]
version = "0.3.1"
[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]
[dev-dependencies.garde]
version = "0.23"
features = [
"derive",
"email",
"url",
]
[dev-dependencies.insta]
version = "1.48"
[dev-dependencies.serde]
version = "1"
features = ["derive"]
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"macros",
]
[dev-dependencies.tower]
version = "0.5"
features = ["util"]
[dev-dependencies.trybuild]
version = "1"
[dev-dependencies.vespera_inprocess]
version = "0.3.1"
[lints.clippy]
collection_is_never_read = "warn"
doc_markdown = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
option_if_let_else = "warn"
redundant_pub_crate = "warn"
use_self = "warn"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(tarpaulin_include)"]