[package]
edition = "2024"
rust-version = "1.89"
name = "salvo-oapi"
version = "0.89.0"
authors = [
"Juha Kukkonen <juha7kukkonen@gmail.com>",
"chrislearn <chris@acroidea.com>",
]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "OpenApi support for Salvo web framework"
homepage = "https://salvo.rs"
documentation = "https://docs.rs/salvo-oapi/"
readme = "README.md"
keywords = [
"http",
"async",
"salvo",
"openapi",
"swagger-ui",
]
categories = [
"network-programming",
"asynchronous",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/salvo-rs/salvo"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
anyhow = ["dep:anyhow"]
chrono = [
"salvo-oapi-macros/chrono",
"dep:chrono",
]
compact_str = [
"salvo-oapi-macros/compact_str",
"dep:compact_str",
]
decimal = [
"salvo-oapi-macros/decimal",
"dep:rust_decimal",
]
decimal-float = [
"salvo-oapi-macros/decimal-float",
"dep:rust_decimal",
]
default = []
eyre = ["dep:eyre"]
full = [
"swagger-ui",
"scalar",
"rapidoc",
"redoc",
"chrono",
"decimal",
"anyhow",
"url",
"ulid",
"uuid",
"time",
"smallvec",
"indexmap",
"yaml",
"non-strict-integers",
"compact_str",
]
indexmap = ["salvo-oapi-macros/indexmap"]
non-strict-integers = ["salvo-oapi-macros/non-strict-integers"]
preserve-order = [
"preserve-path-order",
"preserve-prop-order",
]
preserve-path-order = []
preserve-prop-order = []
rapidoc = []
redoc = []
scalar = []
smallvec = [
"salvo-oapi-macros/smallvec",
"dep:smallvec",
]
swagger-ui = ["dep:rust-embed"]
time = [
"salvo-oapi-macros/time",
"dep:time",
]
ulid = [
"salvo-oapi-macros/ulid",
"dep:ulid",
]
url = [
"salvo-oapi-macros/url",
"dep:url",
]
uuid = [
"salvo-oapi-macros/uuid",
"dep:uuid",
]
yaml = ["dep:serde_norway"]
[lib]
name = "salvo_oapi"
path = "src/lib.rs"
[dependencies.anyhow]
version = "1"
optional = true
[dependencies.base64]
version = "0.22"
[dependencies.bytes]
version = "1"
[dependencies.chrono]
version = "0.4"
optional = true
[dependencies.compact_str]
version = "0.9"
features = ["serde"]
optional = true
[dependencies.eyre]
version = "0.6"
optional = true
[dependencies.futures-util]
version = "0.3"
default-features = false
[dependencies.http]
version = "1"
[dependencies.indexmap]
version = "2"
features = ["serde"]
[dependencies.inventory]
version = "0.3"
[dependencies.mime-infer]
version = "4"
[dependencies.parking_lot]
version = "0.12"
[dependencies.regex]
version = "1"
[dependencies.rust-embed]
version = ">= 6, <= 9"
optional = true
[dependencies.rust_decimal]
version = "1"
optional = true
[dependencies.salvo-oapi-macros]
version = "0.89.0"
default-features = false
[dependencies.salvo_core]
version = "0.89.0"
features = ["cookie"]
default-features = false
[dependencies.serde]
version = "1"
[dependencies.serde_json]
version = "1"
[dependencies.serde_norway]
version = "0.9"
optional = true
[dependencies.smallvec]
version = "1"
optional = true
[dependencies.thiserror]
version = "2"
[dependencies.time]
version = "0.3"
optional = true
[dependencies.tokio]
version = "1"
[dependencies.tracing]
version = "0.1"
[dependencies.ulid]
version = "1"
optional = true
default-features = false
[dependencies.url]
version = "2"
optional = true
[dependencies.uuid]
version = "1"
optional = true
[dev-dependencies.assert-json-diff]
version = "2"
[dev-dependencies.chrono]
version = "0.4"
features = ["serde"]
[dev-dependencies.compact_str]
version = "0.9"
features = [
"serde",
"serde",
]
[dev-dependencies.rust_decimal]
version = "1"
[dev-dependencies.salvo_core]
version = "0.89.0"
features = [
"cookie",
"test",
]
default-features = false
[dev-dependencies.serde]
version = "1"
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.serial_test]
version = "3"
[dev-dependencies.smallvec]
version = "1"
features = ["serde"]
[dev-dependencies.time]
version = "0.3"
features = ["serde-human-readable"]
[build-dependencies.regex]
version = "1"
[lints.clippy]
await_holding_lock = "warn"
dbg_macro = "warn"
empty_enums = "warn"
enum_glob_use = "warn"
equatable_if_let = "warn"
exit = "warn"
filter_map_next = "warn"
fn_params_excessive_bools = "warn"
future_not_send = "warn"
if_let_mutex = "warn"
implicit_clone = "warn"
imprecise_flops = "warn"
inefficient_to_string = "warn"
linkedlist = "warn"
lossy_float_literal = "warn"
macro_use_imports = "warn"
manual_let_else = "warn"
mem_forget = "warn"
must_use_candidate = "warn"
needless_borrow = "warn"
needless_continue = "warn"
needless_pass_by_ref_mut = "warn"
option_option = "warn"
redundant_clone = "warn"
ref_option = "warn"
rest_pat_in_fully_bound_structs = "warn"
return_self_not_must_use = "warn"
single_match_else = "warn"
str_to_string = "warn"
suboptimal_flops = "warn"
todo = "warn"
trivially_copy_pass_by_ref = "warn"
type_complexity = "allow"
uninlined_format_args = "warn"
unnested_or_patterns = "warn"
unused_self = "warn"
unwrap_used = "warn"
use_self = "warn"
[lints.rust]
missing_debug_implementations = "warn"
missing_docs = "warn"
unreachable_pub = "deny"
unsafe_code = "forbid"
[lints.rustdoc]
broken_intra_doc_links = "warn"