allframe-core
The composable Rust API framework
AllFrame is a protocol-agnostic Rust web framework built with Test-Driven Development. Write your handler once, expose it via REST, GraphQL, and gRPC.
Features
- ✅ Protocol-Agnostic Routing - One handler, multiple protocols (REST, GraphQL, gRPC)
- ✅ CQRS + Event Sourcing - Production-ready CQRS infrastructure with 90% less boilerplate
- ✅ Compile-time DI - Dependency injection resolved at compile time
- ✅ Auto Documentation - OpenAPI 3.1, GraphQL schemas, and gRPC reflection
- ✅ Zero Runtime Dependencies - Just Tokio and Hyper
- ✅ 100% TDD - Every feature has tests before implementation
Quick Start
[]
= "0.1"
= { = "1.48", = ["full"] }
use Router;
async
Protocol-Agnostic Example
use ;
let mut router = new;
router.register;
// REST
let rest = new;
rest.route;
// GraphQL
let graphql = new;
graphql.query;
// gRPC
let grpc = new;
grpc.unary;
Features
Default Features
= "0.1"
# Includes: di, openapi, router, otel
All Features
= { = "0.1", = [
"di", # Dependency injection
"openapi", # OpenAPI documentation
"router", # Protocol-agnostic routing
"router-graphql", # GraphQL support
"router-grpc", # gRPC support
"router-full", # All protocols
"cqrs", # CQRS + Event Sourcing
"otel", # OpenTelemetry tracing
] }
Optional CQRS Features
= { = "0.1", = [
"cqrs", # Core CQRS infrastructure
"cqrs-allsource", # AllSource Core event store
] }
CQRS Example
use ;
// 90% less boilerplate with automatic dispatch!
let mut bus = new;
bus.register;
bus.execute.await?;
Documentation
- API Docs: https://docs.rs/allframe-core
- Guide: See examples/ directory
- MCP Server: https://crates.io/crates/allframe-mcp
Examples
# REST API
# GraphQL API
# gRPC API
# Multi-protocol
Why AllFrame?
| Feature | AllFrame | Actix | Axum | Rocket |
|---|---|---|---|---|
| TDD-First | ✅ 100% | ❌ | ❌ | ❌ |
| Protocol-Agnostic | ✅ | ❌ | ❌ | ❌ |
| Built-in CQRS | ✅ | ❌ | ❌ | ❌ |
| Compile-time DI | ✅ | ❌ | ❌ | ❌ |
| Zero Runtime Deps | ✅ | ❌ | ✅ | ❌ |
Contributing
Contributions welcome! See CONTRIBUTING.md.
License
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
at your option.
Resources
- Documentation: https://docs.rs/allframe-core
- Repository: https://github.com/all-source-os/all-frame
- CLI Tool: https://crates.io/crates/allframe-forge
- MCP Server: https://crates.io/crates/allframe-mcp