# allframe-forge
**AllFrame CLI - Project scaffolding and code generation**
[](https://crates.io/crates/allframe-forge)
[](https://docs.rs/allframe-forge)
[](../../LICENSE-MIT)
The AllFrame CLI tool for creating and managing AllFrame projects.
## Installation
```bash
cargo install allframe-forge
```
## Usage
### Create New Project
```bash
# Create a new AllFrame project
allframe ignite my-api
# Navigate to the project
cd my-api
# Run the API
cargo run
```
### Project Structure
The generated project includes:
```
my-api/
├── Cargo.toml
├── src/
│ ├── main.rs # Application entry point
│ ├── handlers/ # API handlers
│ ├── domain/ # Domain models
│ └── infrastructure/ # Database, config, etc.
├── tests/ # Integration tests
└── examples/ # Usage examples
```
### Features
- ✅ **Clean Architecture** - Proper separation of concerns
- ✅ **Protocol-Agnostic** - REST, GraphQL, gRPC support
- ✅ **CQRS Ready** - Command/Query separation
- ✅ **Test Setup** - Pre-configured test infrastructure
- ✅ **Best Practices** - Industry-standard project structure
## Commands
```bash
# Create new project
allframe ignite <name>
# Generate handler
allframe generate handler <name>
# Generate command (CQRS)
allframe generate command <name>
# Generate query (CQRS)
allframe generate query <name>
```
## Project Templates
### Minimal
```bash
allframe ignite my-api --template minimal
# Simple REST API with basic routing
```
### Full
```bash
allframe ignite my-api --template full
# Complete setup with REST, GraphQL, gRPC, and CQRS
```
### CQRS
```bash
allframe ignite my-api --template cqrs
# CQRS-focused architecture with event sourcing
```
## Configuration
Generated projects use `allframe-core` with sensible defaults:
```toml
[dependencies]
allframe-core = { version = "0.1", features = [
"di",
"openapi",
"router",
"otel"
] }
```
## Development
After creating a project:
```bash
# Run the API
cargo run
# Run tests
cargo test
# Run with specific features
cargo run --features graphql,grpc
# View API documentation
# Visit http://localhost:8080/docs after starting
```
## Examples
See the [examples/](../../examples/) directory in the AllFrame repository for complete project examples.
## License
Licensed under either of:
- Apache License, Version 2.0 ([LICENSE-APACHE](../../LICENSE-APACHE))
- MIT license ([LICENSE-MIT](../../LICENSE-MIT))
at your option.
## Resources
- **AllFrame Core**: https://crates.io/crates/allframe-core
- **Documentation**: https://docs.rs/allframe-forge
- **Repository**: https://github.com/all-source-os/all-frame
- **Issues**: https://github.com/all-source-os/all-frame/issues