[workspace] resolver = "2" members = [ "crates/rustapi-rs", "crates/rustapi-core", "crates/rustapi-macros", "crates/rustapi-validate", "crates/rustapi-openapi", "crates/rustapi-extras", "crates/rustapi-toon", "crates/rustapi-ws", "crates/rustapi-view", "crates/rustapi-testing", "crates/rustapi-grpc", "crates/rustapi-mcp", "crates/cargo-rustapi", ] exclude = ["apps/bayram-leaderboard"] [workspace.package] version = "0.2.2" edition = "2021" authors = ["RustAPI Contributors, Tuntii"] license = "MIT OR Apache-2.0" repository = "https://github.com/Tuntii/RustAPI" homepage = "https://github.com/Tuntii/RustAPI" documentation = "https://docs.rs/rustapi-rs" keywords = ["web", "framework", "api", "rest", "http"] categories = ["web-programming::http-server"] rust-version = "1.85" [workspace.dependencies] # Async runtime tokio = "1.50" # HTTP hyper = "1.1" hyper-util = "0.1" http = "1.0" http-body-util = "0.1" # Serialization serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" # Middleware tower-service = "0.3" # Utilities tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } futures-util = "0.3" bytes = "1.5" matchit = "0.7" # Radix tree router pin-project-lite = "0.2" async-trait = "0.1" # Proc macros syn = { version = "3.0", features = ["full", "parsing", "extra-traits"] } quote = "1.0" proc-macro2 = "1.0" linkme = "0.3" # Validation validator = { version = "0.21", features = ["derive"] } # UUID uuid = { version = "1.6", features = ["v4"] } # Metrics prometheus = { version = "0.14", default-features = false } # TOON format toon-format = { version = "0.4", default-features = false } # Benchmarking criterion = { version = "0.5", features = ["html_reports"] } # WebSocket tokio-tungstenite = "0.24" tungstenite = "0.24" # gRPC tonic = "0.14" prost = "0.14" # Template engine tera = { version = "2.0", features = ["glob_fs"] } # CLI clap = { version = "4.5", features = ["derive", "color"] } dialoguer = "0.11" indicatif = "0.18" console = "0.16" open = "5" chrono = { version = "0.4", features = ["serde"] } # Internal crates rustapi-rs = { path = "crates/rustapi-rs", version = "0.2.2", default-features = false } rustapi-core = { path = "crates/rustapi-core", version = "0.2.2", default-features = false } rustapi-macros = { path = "crates/rustapi-macros", version = "0.2.2" } rustapi-validate = { path = "crates/rustapi-validate", version = "0.2.2" } rustapi-openapi = { path = "crates/rustapi-openapi", version = "0.2.2", default-features = false } rustapi-extras = { path = "crates/rustapi-extras", version = "0.2.2" } rustapi-toon = { path = "crates/rustapi-toon", version = "0.2.2" } rustapi-ws = { path = "crates/rustapi-ws", version = "0.2.2" } rustapi-view = { path = "crates/rustapi-view", version = "0.2.2" } rustapi-testing = { path = "crates/rustapi-testing", version = "0.2.2" } rustapi-grpc = { path = "crates/rustapi-grpc", version = "0.2.2" } rustapi-mcp = { path = "crates/rustapi-mcp", version = "0.2.2" } # HTTP/3 (QUIC) quinn = "0.11" h3 = "0.0.8" h3-quinn = "0.0.10" rustls = { version = "0.23", default-features = false, features = ["ring", "std"] } rcgen = "0.14" # ============================================ # Release Profile - Maximum Performance # ============================================ [profile.release] opt-level = 3 lto = "fat" codegen-units = 1 panic = "abort" strip = true debug = false # Low-RAM release: thin LTO + split codegen avoids Windows OOM/BSOD during linking. # Use: cargo build --profile release-low-mem --workspace # Or: cargo release-safe [profile.release-low-mem] inherits = "release" lto = "thin" codegen-units = 4 # Lighter dev profile when even debug builds spike RAM (optional). # Use: cargo build --profile dev-low-mem -p rustapi-core [profile.dev-low-mem] inherits = "dev" debug = 1 # Benchmark Profile - Even more aggressive [profile.bench] inherits = "release" lto = "fat" codegen-units = 1 # Release with debug symbols for profiling [profile.release-with-debug] inherits = "release" debug = true strip = false