[workspace] resolver = "2" members = [ "crates/erp-core", "crates/erp-server", "crates/erp-auth", "crates/erp-workflow", "crates/erp-message", "crates/erp-config", "crates/erp-server/migration", "crates/erp-plugin", "crates/erp-diary", ] [workspace.package] version = "0.1.0" edition = "2024" license = "MIT" [workspace.dependencies] # Async tokio = { version = "1", features = ["full"] } # Web axum = { version = "0.8", features = ["multipart"] } tower = "0.5" tower-http = { version = "0.6", features = ["cors", "trace", "compression-gzip", "fs", "set-header"] } # Database sea-orm = { version = "1.1", features = [ "sqlx-postgres", "runtime-tokio-rustls", "macros", "with-uuid", "with-chrono", "with-json" ] } sea-orm-migration = { version = "1.1", features = ["sqlx-postgres", "runtime-tokio-rustls"] } sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "postgres", "uuid"] } # Serialization serde = { version = "1", features = ["derive"] } serde_json = "1" # UUID & Time uuid = { version = "1", features = ["v7", "serde"] } chrono = { version = "0.4", features = ["serde"] } # Error handling thiserror = "2" anyhow = "1" # Logging tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] } # Config config = "0.14" # Redis redis = { version = "0.27", features = ["tokio-comp", "connection-manager"] } # JWT jsonwebtoken = "9" # Password hashing argon2 = "0.5" # Cryptographic hashing (token storage) sha2 = "0.10" # API docs utoipa = { version = "5", features = ["axum_extras", "uuid", "chrono"] } # utoipa-swagger-ui 需要下载 GitHub 资源,网络受限时暂不使用 # utoipa-swagger-ui = { version = "8", features = ["axum"] } # Validation validator = { version = "0.19", features = ["derive"] } # Async trait async-trait = "0.1" # HTTP client reqwest = { version = "0.12", features = ["json", "stream"] } # Crypto aes = "0.8" cbc = "0.1" hex = "0.4" regex-lite = "0.1" # CSV and Excel export csv = "1" rust_xlsxwriter = "0.82" # Internal crates erp-core = { path = "crates/erp-core" } erp-auth = { path = "crates/erp-auth" } erp-workflow = { path = "crates/erp-workflow" } erp-message = { path = "crates/erp-message" } erp-config = { path = "crates/erp-config" } erp-plugin = { path = "crates/erp-plugin" } erp-diary = { path = "crates/erp-diary" } # Async streaming futures = "0.3" tokio-stream = "0.1" async-stream = "0.3" dashmap = "6" # Template engine handlebars = "6" # HTML sanitization ammonia = "4" # Document parsing pdf-extract = "0.7" # Metrics metrics = "0.24" metrics-exporter-prometheus = "0.16"