allframe 0.1.12

Complete Rust web framework with built-in HTTP/2 server, REST/GraphQL/gRPC, compile-time DI, CQRS - TDD from day zero
Documentation
[workspace]
members = [
    "crates/allframe-core",
    "crates/allframe-macros",
    "crates/allframe-forge",
    "crates/allframe-mcp",
]
resolver = "2"

# Main allframe crate - re-exports allframe-core
[package]
name = "allframe"
version = "0.1.12"
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
keywords.workspace = true
categories.workspace = true
description = "Complete Rust web framework with built-in HTTP/2 server, REST/GraphQL/gRPC, compile-time DI, CQRS - TDD from day zero"
readme = "README.md"

[dependencies]
allframe-core = { workspace = true, features = ["di", "openapi", "router", "otel", "cqrs"] }
allframe-forge = { workspace = true }
anyhow = { workspace = true }

[[bin]]
name = "allframe"
path = "src/bin/allframe.rs"

[[example]]
name = "resilience"
required-features = ["resilience"]

[[example]]
name = "security"
required-features = ["security"]

[features]
default = ["di", "openapi", "router", "otel", "cqrs", "health"]
di = ["allframe-core/di"]
openapi = ["allframe-core/openapi"]
otel = ["allframe-core/otel"]
health = ["allframe-core/health"]
router = ["allframe-core/router"]
router-graphql = ["allframe-core/router-graphql"]
router-grpc = ["allframe-core/router-grpc"]
router-grpc-tls = ["allframe-core/router-grpc-tls"]
router-full = ["allframe-core/router-full"]
cqrs = ["allframe-core/cqrs"]
cqrs-allsource = ["allframe-core/cqrs-allsource"]
cqrs-postgres = ["allframe-core/cqrs-postgres"]
cqrs-rocksdb = ["allframe-core/cqrs-rocksdb"]

# New modular features
resilience = ["allframe-core/resilience"]
security = ["allframe-core/security"]
http-client = ["allframe-core/http-client"]
otel-otlp = ["allframe-core/otel-otlp"]
metrics = ["allframe-core/metrics"]
cache-memory = ["allframe-core/cache-memory"]
cache-redis = ["allframe-core/cache-redis"]
rate-limit = ["allframe-core/rate-limit"]
utils = ["allframe-core/utils"]

[dev-dependencies]
assert_cmd = "2.0"
predicates = "3.0"
tempfile = "3.8"
allframe-macros = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
tokio = { workspace = true }
async-trait = { workspace = true }
tracing = "0.1"

[workspace.package]
version = "0.1.12"
edition = "2021"
rust-version = "1.86"  # Required for async-graphql 7.0.17
authors = ["AllFrame Contributors"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/all-source-os/all-frame"
homepage = "https://all-source-os.github.io/all-frame"
documentation = "https://docs.rs/allframe"
keywords = ["web", "framework", "api", "tdd", "clean-architecture"]
categories = ["web-programming::http-server", "asynchronous"]

[workspace.dependencies]
# === Async Runtime ===
# Updated: 2025-12-04 - Latest stable for performance improvements
tokio = { version = "1.48", features = ["full"] }

# === HTTP Server ===
# Updated: 2025-12-04 - HTTP/2 improvements and security fixes
hyper = { version = "1.8", features = ["full"] }

# === Core Utilities ===
# Stable APIs - minor updates are safe
async-trait = "0.1"
thiserror = "2.0"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

# === Testing Dependencies ===
# Updated: 2025-12-04 - Latest test utilities
assert_cmd = "2.0"
predicates = "3.1"
tempfile = "3.15"
proptest = "1.6"
mockall = "0.13"
trybuild = "1.0"
criterion = "0.5"

# === CLI Dependencies ===
# Updated: 2025-12-04
clap = "4.5"
anyhow = "1.0.75"  # Minimum version for Rust 1.80+ compatibility

# === Proc Macro Dependencies ===
syn = "2.0"
quote = "1.0"
proc-macro2 = "1.0"

# === Internal Workspace Crates ===
# IMPORTANT: Keep these versions in sync with workspace.package.version above!
# When releasing a new version:
#   1. Update workspace.package.version (line 73)
#   2. Update these three version strings to match
# This ensures crates.io consumers get the correct dependency versions.
allframe-core = { version = "0.1.12", path = "crates/allframe-core", default-features = false }
allframe-macros = { version = "0.1.12", path = "crates/allframe-macros" }
allframe-forge = { version = "0.1.12", path = "crates/allframe-forge" }

# Test configuration for the workspace
[profile.test]
opt-level = 0
debug = true

[profile.bench]
opt-level = 3
lto = true

# Release configuration
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
strip = true