[package]
name = "robotech"
version = "1.5.1"
edition = "2024"
authors = ["zbz"]
keywords = ["crud", "microservice", "service", "RESTful"]
description = "Backend service implementation for the RoboTech platform, providing RESTful APIs and business logic for web applications."
categories = ["web-programming::http-server"]
license = "MIT"
homepage = "https://github.com/rusthing/robotech-rs"
repository = "https://github.com/rusthing/robotech-rs"
readme = "README.md"

[features]
api-client = ["dep:reqwest"]
app = ["dep:anyhow", "dep:config", "dep:validator", "dep:idworker"]
web = ["app", "dep:ipnet", "dep:axum", "dep:tower", "dep:tower-http", "dep:tokio-rustls", "dep:hyper", "dep:hyper-util", "dep:rustls-pemfile", "dep:socket2", "dep:reqwest"]
db = ["app", "dep:sqlx", "dep:sea-orm", "dep:regex", "dep:once_cell"]
macros = ["dep:robotech-macros"]

[dependencies]
log = { workspace = true }
tracing-log = { workspace = true }
tracing-core = { workspace = true }
tracing-appender = { workspace = true }
tracing-subscriber = { workspace = true, features = ["env-filter", "json", "chrono", "tracing-log"] }
notify = { workspace = true }
notify-debouncer-mini = { workspace = true }
thiserror = { workspace = true }
chrono = { workspace = true }
derive_setters = { workspace = true }
typed-builder = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
serde_with = { workspace = true }
tokio = { workspace = true, features = ["macros"] }
nix = { workspace = true }
utoipa = { workspace = true }
utoipa-swagger-ui = { workspace = true, features = ["axum"] }
anyhow = { workspace = true, optional = true }
config = { workspace = true, optional = true }
linkme = { workspace = true }
regex = { workspace = true, optional = true }
ipnet = { workspace = true, optional = true }
axum = { workspace = true, optional = true, features = ["multipart", "macros"] }                  # Web框架
tower = { workspace = true, optional = true }
tower-http = { workspace = true, features = ["cors", "trace", "fs"], optional = true }          # axum常用中间件集合 (CORS, 日志, 静态文件服务, 追踪等)
rustls-pemfile = { workspace = true, optional = true }
tokio-rustls = { workspace = true, features = ["aws-lc-rs"], optional = true }
hyper = { workspace = true, optional = true }
hyper-util = { workspace = true, optional = true }
socket2 = { workspace = true, optional = true }
sqlx = { workspace = true, optional = true }
sea-orm = { workspace = true, optional = true }
once_cell = { workspace = true, optional = true }
validator = { workspace = true, optional = true }
reqwest = { workspace = true, features = ["multipart", "json", "stream"], optional = true }

idworker = { workspace = true, optional = true }
wheel-rs = { workspace = true }

robotech-macros = { workspace = true, optional = true }
