Boots
Bootstrap a Rust template generator for building modular architectures (monorepo)
Installation
Using Cargo
Using Pre-built Binaries
Download pre-built binaries for your platform from Releases:
Linux & macOS
# Linux x64
# macOS ARM64 (Apple Silicon)
Windows (PowerShell)
Invoke-WebRequest -Uri "https://github.com/1eedaegon/boots/releases/latest/download/boots-windows-x64.zip" -OutFile "boots.zip"
Expand-Archive -Path boots.zip -DestinationPath .
Move-Item boots.exe,cargo-boots.exe "$env:USERPROFILE\.cargo\bin\"
Usage
Service Project (Full-stack)
Create a service with API, runtime server, CLI, and core modules:
# Basic service
# With PostgreSQL support
# With PostgreSQL and gRPC
# With all options
# Using cargo subcommand
CLI Project
Create a CLI application with core and optional modules:
# Basic CLI
# With HTTP client
# With client and persistence
Library Project
Create a minimal library with examples:
Generated Project Structures
Service Project
my-api/
├── crates/
│ ├── api/ # HTTP/gRPC handlers and routes
│ ├── cli/ # Command-line interface
│ ├── core/ # Business logic and domain types
│ └── runtime/ # Server startup and configuration
├── .github/
│ └── workflows/ # CI/CD (build, test, release)
├── Cargo.toml # Workspace configuration
├── Dockerfile
├── Makefile
└── README.md
Runtime Features:
- Health endpoint:
GET /healthreturns{"healthy": true} - Metrics endpoint:
GET /metricsreturns Prometheus format
CLI Project
my-tool/
├── crates/
│ ├── cli/ # Command-line interface
│ ├── client/ # HTTP client (with --options client)
│ └── core/ # Business logic
├── Cargo.toml
├── Dockerfile
├── Makefile
└── README.md
Library Project
my-crate/
├── crates/
│ └── core/
│ ├── src/
│ └── examples/ # Example usage
├── Cargo.toml
├── Dockerfile
├── Makefile
└── README.md
Options Reference
Service Options
| Option | Description |
|---|---|
postgres |
Add PostgreSQL support with sqlx and migrations |
sqlite |
Add SQLite support |
grpc |
Add gRPC support with tonic and proto directory |
http |
HTTP API (enabled by default) |
CLI Options
| Option | Description |
|---|---|
client |
Add HTTP client module with reqwest |
persistence |
Add local file-based persistence |
Examples
Create and Run a Service
Test the endpoints:
# {"healthy":true}
# # HELP up Server is up
# up 1
Create and Run a CLI Tool
Create a Library
Development
# Build
# Test
# Lint
# Format
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License