[workspace]
members = ["rovo-macros", "rovo-lsp"]
exclude = ["zed-rovo"]
resolver = "2"

[workspace.package]
version = "0.4.5"
edition = "2021"
license = "MIT"
repository = "https://github.com/Arthurdw/rovo"
documentation = "https://docs.rs/rovo"
homepage = "https://github.com/Arthurdw/rovo"

[workspace.dependencies]
rovo-macros = { version = "0.4.5", path = "rovo-macros" }

[package]
name = "rovo"
version.workspace = true
edition.workspace = true
description = "A drop-in replacement for axum::Router with effortless OpenAPI documentation"
license.workspace = true
repository.workspace = true
readme = "README.md"
keywords = ["axum", "openapi", "swagger", "api", "documentation"]
categories = ["web-programming", "web-programming::http-server"]

[features]
default = []
swagger = ["aide/swagger"]
redoc = ["aide/redoc"]
scalar = ["aide/scalar"]

[dependencies]
rovo-macros.workspace = true
aide = { version = "0.15", features = ["axum", "axum-json", "axum-query"] }
axum = "0.8.7"
serde_yaml = "0.9"
schemars = { version = "0.9", features = ["uuid1"] }
serde_json = "1.0"

[dev-dependencies]
axum = "0.8.7"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
tokio = { version = "1", features = ["full"] }
uuid = { version = "1", features = ["serde", "v4"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
trybuild = "1.0"
tower = "0.5"
version_check = "0.9"

[[example]]
name = "todo_api"
required-features = ["swagger"]
