[workspace] resolver = "3" members = [ "crates/domain", "crates/application", "crates/infrastructure", "crates/api", ] [workspace.package] version = "0.1.0" edition = "2024" license = "Proprietary" authors = ["Holzleitner GmbH"] [workspace.dependencies] # === Externe Crates (zentral gepinnt) ===================================== serde = { version = "1", features = ["derive"] } serde_json = "1" uuid = { version = "1", features = ["serde", "v4"] } chrono = { version = "0.4", default-features = false, features = ["serde", "clock"] } async-trait = "0.1" thiserror = "2" tokio = { version = "1", features = ["full"] } axum = { version = "0.8", features = ["multipart"] } tower = "0.5" tower-http = { version = "0.6", features = ["trace", "cors"] } tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } tracing-appender = "0.2" sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "postgres", "uuid", "chrono", "macros"] } reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls", "multipart"] } # MSSQL (ERPframe) — nativer async-Treiber. Kein Pool: der ERP-Pull läuft # einmal täglich, eine frische Verbindung pro Lauf reicht. tiberius = { version = "0.12", default-features = false, features = ["chrono", "rustls", "tds73"] } tokio-util = { version = "0.7", features = ["compat"] } tokio-cron-scheduler = "0.13" jsonwebtoken = "9" toml = "0.8" anyhow = "1" # Windows-Dienst-Integration (SCM). Nur unter Windows kompiliert. windows-service = "0.6" sha2 = "0.10" imagesize = "0.13" utoipa = { version = "5", features = ["axum_extras", "chrono", "uuid"] } utoipa-swagger-ui = { version = "9", features = ["axum"] } # === Interne Crates ======================================================= holzleitner-domain = { path = "crates/domain" } holzleitner-application = { path = "crates/application" } holzleitner-infrastructure = { path = "crates/infrastructure" }