| Crates.io | cargo-x402 |
| lib.rs | cargo-x402 |
| version | 0.5.1 |
| created_at | 2025-11-27 16:19:20.173359+00 |
| updated_at | 2025-11-28 21:30:52.828683+00 |
| description | Scaffold x402 projects from templates. |
| homepage | https://github.com/cryptopatrick/cargo-x402 |
| repository | https://github.com/cryptopatrick/cargo-x402 |
| max_upload_size | |
| id | 1954045 |
| size | 317,038 |
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
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.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 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 β
βββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 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 β
ββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 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 β
βββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 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 β
βββββββββββββ βββββββββββββββ ββββββββββββββ
x402-template topicInstall 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 .
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
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
Production-ready REST API with Axum framework
Features:
Use for: Quick API prototypes, microservices, REST backends
Full-featured API with database support
Features:
Use for: Data-driven applications, persistent storage requirements
Complete web application with backend and frontend
Features:
Use for: Web applications, SPA + API combos, full-stack projects
Production-grade microservice with tracing and metrics
Features:
Use for: Cloud deployments, observability needs, production services
Professional command-line tool template
Features:
Use for: CLI utilities, scripts, command-line tools
See TEMPLATE_AUTHOR_GUIDE.md for:
CryptoPatrick - Rust ecosystem tools & frameworks
Star β this project if you find it useful!
Found a bug? Want a feature? Have a template idea?
Contributions are welcome! Please see CONTRIBUTING.md for:
This project is licensed under the MIT License. See LICENSE for details.
Made with β€οΈ by CryptoPatrick & xForth
GitHub β’
Crates.io β’
Docs.rs