cargo-x402

Crates.iocargo-x402
lib.rscargo-x402
version0.5.1
created_at2025-11-27 16:19:20.173359+00
updated_at2025-11-28 21:30:52.828683+00
descriptionScaffold x402 projects from templates.
homepagehttps://github.com/cryptopatrick/cargo-x402
repositoryhttps://github.com/cryptopatrick/cargo-x402
max_upload_size
id1954045
size317,038
CryptoPatrick (cryptopatrick)

documentation

https://docs.rs/cargo-x402

README


cargo-x402
cargo-x402

Scaffold production-ready Rust projects instantly with community templates.

Crates.io Downloads CI Status Documentation License

Author: πŸ‘‹ Hi, I'm CryptoPatrick! I create tools and frameworks for the Rust ecosystem. If you have questions or want to connect, reach out on X/Twitter.


What is cargo-x402 β€’ Features β€’ Quick Start β€’ Templates β€’ Documentation β€’ License

πŸ›Ž Status

  • v1.0.0 - Production-ready release
  • 208+ tests passing across all platforms
  • 5 official templates included and maintained
  • Multi-platform support - macOS, Linux, Windows
  • Fully open-source and community-driven

:pushpin: Table of Contents

Table of Contents
  1. What is cargo-x402
  2. Features
  3. Architecture
  4. Quick Start
  5. Official Templates
  6. Documentation
  7. Roadmap
  8. Author
  9. Support
  10. Contributing
  11. License

πŸ€” What is cargo-x402

cargo-x402 is a template scaffolding tool that helps you create production-ready Rust projects in seconds. It automatically discovers templates from GitHub repositories tagged with x402-template and provides an interactive CLI for creating projects with custom parameters.

Instead of manually setting up boilerplate code, copying files, and configuring projects, cargo-x402 handles it all instantlyβ€”and it's customizable for your needs.

Use Cases

  • Rapid Prototyping: Start API projects in seconds with batteries included
  • Standardized Architecture: Enforce consistent project structure across teams
  • Best Practices: Include production-grade patterns (logging, observability, database)
  • Full-Stack Development: Scaffold complete applications (frontend + backend)
  • CLI Tools: Create command-line utilities with proper argument parsing
  • Microservices: Deploy production-ready services with observability built-in

πŸ“ Architecture

  1. πŸ”„ Overall Workflow
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         User Command: cargo-x402 create                  β”‚
β”‚              (Interactive or Direct)                      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚             Discovery Module                             β”‚
β”‚  β€’ Check local cache (< 1 hour)                          β”‚
β”‚  β€’ If stale, query GitHub API for x402-template topic   β”‚
β”‚  β€’ Cache results locally                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚   Interactive Selection      β”‚
         β”‚   (or use --template flag)   β”‚
         β”‚   User chooses template      β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚   Parameter Input            β”‚
         β”‚   (Project name, options)    β”‚
         β”‚   Validation & prompts       β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚   Download & Extract         β”‚
         β”‚   Template from GitHub       β”‚
         β”‚   Clone to temp directory    β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚   Validate x402.toml         β”‚
         β”‚   Schema validation          β”‚
         β”‚   Parameter verification     β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚   Liquid Rendering           β”‚
         β”‚   Substitute parameters      β”‚
         β”‚   Process conditionals       β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚   Project Creation           β”‚
         β”‚   Copy files to destination  β”‚
         β”‚   Clean up .git directory    β”‚
         β”‚   Initialize git repo        β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚   Success! βœ“                 β”‚
         β”‚   Ready to develop           β”‚
         β”‚   Next steps displayed       β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  1. πŸ” Discovery & Caching Flow
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         cargo-x402 list (or discover templates)          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
              β”‚  Check Local    β”‚
              β”‚  Cache (1hr)    β”‚
              β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
           β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
           β”‚                       β”‚
    β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”
    β”‚ Cache Valid β”‚         β”‚Cache Stale  β”‚
    β”‚ Return!     β”‚         β”‚or Missing   β”‚
    β”‚ (Fast)      β”‚         β”‚             β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                       β”‚  Query GitHub β”‚
                       β”‚  API (topic)  β”‚
                       β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚  Parse Results β”‚
                    β”‚  Extract Metadata
                    β”‚  (name, description,
                    β”‚   owner, stars)  β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚  Update Cache  β”‚
                    β”‚  + timestamp   β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚  Display List  β”‚
                    β”‚  to User       β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  1. πŸ“ Template Creation Flow
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         Selected Template Details                         β”‚
β”‚  β€’ Name, description, URL                                β”‚
β”‚  β€’ x402.toml manifest                                    β”‚
β”‚  β€’ Parameters (string, boolean, enum)                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚  1. Download Template        β”‚
         β”‚  β€’ Clone from GitHub         β”‚
         β”‚  β€’ Temporary directory       β”‚
         β”‚  β€’ Extract files             β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚  2. Parse x402.toml          β”‚
         β”‚  β€’ Read manifest             β”‚
         β”‚  β€’ Extract parameters        β”‚
         β”‚  β€’ Validate schema           β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚  3. Prompt for Parameters    β”‚
         β”‚  (or use defaults)           β”‚
         β”‚  β€’ Validate input            β”‚
         β”‚  β€’ Type checking             β”‚
         β”‚  β€’ Regex patterns            β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚  4. Render with Liquid       β”‚
         β”‚  β€’ Variable substitution     β”‚
         β”‚  β€’ Conditionals              β”‚
         β”‚  β€’ File processing           β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚  5. Create Project Directory β”‚
         β”‚  β€’ Create output folder      β”‚
         β”‚  β€’ Check for collisions      β”‚
         β”‚  β€’ Copy rendered files       β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚  6. Finalization             β”‚
         β”‚  β€’ Remove .git (template)    β”‚
         β”‚  β€’ Initialize new .git       β”‚
         β”‚  β€’ First commit              β”‚
         β”‚  β€’ Display success           β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  1. βš™οΈ Module Architecture
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        cargo-x402 CLI                          β”‚
β”‚                      (src/main.rs)                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                         β”‚
        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚                β”‚                β”‚
   β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”
   β”‚ Discoveryβ”‚  β”‚   Schema    β”‚  β”‚  Template  β”‚
   β”‚  Module  β”‚  β”‚  Validation β”‚  β”‚   Render   β”‚
   β”‚          β”‚  β”‚             β”‚  β”‚            β”‚
   β”‚ β€’ GitHub β”‚  β”‚ β€’ x402.toml β”‚  β”‚ β€’ Liquid   β”‚
   β”‚ β€’ Cache  β”‚  β”‚ β€’ Validator β”‚  β”‚ β€’ File     β”‚
   β”‚ β€’ Topics β”‚  β”‚ β€’ Parameter β”‚  β”‚   copy     β”‚
   β”‚          β”‚  β”‚   types     β”‚  β”‚            β”‚
   β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
        β”‚                β”‚                β”‚
        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                         β”‚
        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚                β”‚                β”‚
   β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”
   β”‚ Commands  β”‚  β”‚ Interactive β”‚  β”‚    Error   β”‚
   β”‚           β”‚  β”‚   Prompts   β”‚  β”‚  Handling  β”‚
   β”‚ β€’ list    β”‚  β”‚             β”‚  β”‚            β”‚
   β”‚ β€’ create  β”‚  β”‚ β€’ Dialoguer β”‚  β”‚ β€’ Error    β”‚
   β”‚           β”‚  β”‚ β€’ Colored   β”‚  β”‚   types    β”‚
   β”‚           β”‚  β”‚   output    β”‚  β”‚ β€’ Helpful  β”‚
   β”‚           β”‚  β”‚ β€’ Validationβ”‚  β”‚   messages β”‚
   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“· Features

Core Capabilities

  • Template Discovery: Automatic discovery from GitHub via x402-template topic
  • Interactive CLI: User-friendly terminal interface with colored output
  • Smart Caching: 1-hour cache with manual refresh option
  • Parameter Handling: Support for string, boolean, and enum parameters
  • Schema Validation: Comprehensive validation of template configuration
  • Liquid Templating: Safe variable substitution with conditionals and loops

Template System

  • x402.toml Schema: Declarative template configuration
  • File Rules: Include/exclude patterns for flexible file management
  • Version Constraints: Specify minimum Rust and cargo-x402 versions
  • Parameter Validation: Regex patterns and enum options for user input
  • Metadata Support: Template name, description, authors, and tags
  • GitHub Integration: Seamless discovery and download from GitHub

Developer Experience

  • Zero Configuration: Works out of the box
  • Progress Indicators: Visual feedback for all operations
  • Helpful Error Messages: Clear guidance when something goes wrong
  • Smart Defaults: Sensible defaults reduce the number of prompts
  • Git Integration: Automatic git repository initialization
  • Template Examples: 5 official templates to get started

πŸš™ Quick Start

Installation

Install from crates.io:

cargo install cargo-x402

Or build from source:

git clone https://github.com/cryptopatrick/cargo-x402.git
cd cargo-x402
cargo install --path .

Your First Project (30 seconds)

Option 1: Interactive Mode

# Start interactive menu
cargo-x402

# Follow prompts to:
# 1. Browse available templates
# 2. Select template
# 3. Enter project name and options
# 4. Confirm and create

Option 2: Direct Command

# Create project directly
cargo-x402 create --template xForth/x402-template-basic-api --name my-api

# Skips template selection and uses defaults

Option 3: List Templates First

# See all available templates
cargo-x402 list

# Show templates matching tags
cargo-x402 list --tags rust,api

What You Get

After running cargo-x402 create, you'll have:

my-awesome-api/
β”œβ”€β”€ src/
β”‚   └── main.rs              # Ready-to-run code
β”œβ”€β”€ Cargo.toml               # Configured dependencies
β”œβ”€β”€ README.md                # Project documentation
β”œβ”€β”€ .gitignore               # Git configuration
β”œβ”€β”€ .env.example             # Environment template
β”œβ”€β”€ Dockerfile               # Container support
└── .git/                    # Initialized git repo

Everything is ready to build and run:

cd my-awesome-api
cargo build
cargo run

πŸ“¦ Templates

Official Templates (v0.2.0)

1. Basic Axum API

Production-ready REST API with Axum framework

Features:

  • Health check endpoints
  • Request/response handling
  • Structured logging
  • Error handling

Use for: Quick API prototypes, microservices, REST backends

2. Axum + PostgreSQL

Full-featured API with database support

Features:

  • SQLx with Postgres
  • Database migrations
  • Connection pooling
  • CRUD operations

Use for: Data-driven applications, persistent storage requirements

3. Full-Stack (Axum + React)

Complete web application with backend and frontend

Features:

  • Axum REST API backend
  • React 18 frontend with TypeScript
  • Vite build system
  • CORS configuration
  • Docker Compose setup

Use for: Web applications, SPA + API combos, full-stack projects

4. Microservice with Observability

Production-grade microservice with tracing and metrics

Features:

  • Jaeger distributed tracing
  • Prometheus metrics
  • Structured logging
  • JSON output
  • Health checks

Use for: Cloud deployments, observability needs, production services

5. CLI Tool

Professional command-line tool template

Features:

  • Clap argument parsing
  • Colored output
  • Progress indicators
  • File operations
  • Error handling

Use for: CLI utilities, scripts, command-line tools

Create Your Own Template

See TEMPLATE_AUTHOR_GUIDE.md for:

  • Template structure and format
  • Parameter configuration
  • Publishing on GitHub
  • Best practices

πŸ“š Documentation

For Users

  • QUICKSTART.md - Get started in 10 minutes
    • Installation methods
    • Your first project
    • Common customizations
    • FAQs and troubleshooting

For Template Authors

  • TEMPLATE_AUTHOR_GUIDE.md - Create custom templates
    • Complete template structure guide
    • x402.toml manifest specification
    • Liquid templating syntax and examples
    • Parameter validation and file handling
    • Publishing and GitHub discovery
    • Best practices and troubleshooting

For Developers

πŸ—ΊοΈ Roadmap

v0.5.0 βœ… (Current : Production Ready)

  • Stable public API
  • 5 official maintained templates
  • Comprehensive test coverage (208+ tests)
  • Full documentation and guides
  • Multi-platform support (macOS, Linux, Windows)

v0.6.0 (Work on this will start in december)

  • Enhanced template caching and offline mode
  • Template repository metadata indexing
  • Improved parameter validation with custom validators
  • Template dependency resolution

v0.7.0

  • Local template support (non-GitHub templates)
  • Custom template hooks (pre/post generation)
  • Private repository template support
  • Performance profiling and optimization

v0.8.0

  • Official template marketplace/registry
  • IDE integrations (VS Code, IntelliJ)
  • Template signing and verification
  • Advanced dependency management

πŸ–Š Author

CryptoPatrick - Rust ecosystem tools & frameworks

🐣 Support

Star ⭐ this project if you find it useful!

Report Issues

Get Help

🀝 Contributing

Found a bug? Want a feature? Have a template idea?

Contributions are welcome! Please see CONTRIBUTING.md for:

  • Code style and standards
  • Testing requirements
  • Submitting PRs
  • Development setup

Ways to Contribute

  1. Report Bugs - Found an issue? Open a GitHub issue
  2. Suggest Features - Have an idea? Share it in discussions
  3. Create Templates - Build and publish templates to GitHub
  4. Improve Docs - Help improve guides and documentation
  5. Submit Code - Fix bugs or implement features

πŸ—„ License

This project is licensed under the MIT License. See LICENSE for details.


Made with ❀️ by CryptoPatrick & xForth
GitHub β€’ Crates.io β€’ Docs.rs

Commit count: 0

cargo fmt