Some checks failed
CI/CD Pipeline / Test Suite (push) Has been cancelled
CI/CD Pipeline / Security Audit (push) Has been cancelled
CI/CD Pipeline / Build Docker Image (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
CI/CD Pipeline / Performance Benchmarks (push) Has been cancelled
CI/CD Pipeline / Cleanup (push) Has been cancelled
323 lines
7.9 KiB
Markdown
323 lines
7.9 KiB
Markdown
# Using Cargo Rustelo - The Easy Way
|
|
|
|
Rustelo provides a powerful Cargo subcommand that makes creating and managing Rustelo sites incredibly simple.
|
|
|
|
## 🚀 Installation
|
|
|
|
Install Rustelo CLI as a Cargo subcommand:
|
|
|
|
```bash
|
|
# Install from local development
|
|
cargo install --path rustelo/crates/rustelo-cli
|
|
|
|
# Or install from crates.io (when published)
|
|
cargo install cargo-rustelo
|
|
```
|
|
|
|
## 🎯 Quick Start - 30 Seconds to a Working Site
|
|
|
|
```bash
|
|
# 1. Create a new site (does everything automatically!)
|
|
cargo rustelo init my-awesome-site
|
|
|
|
# 2. Navigate to the project
|
|
cd my-awesome-site
|
|
|
|
# 3. Start development server
|
|
cargo rustelo dev
|
|
|
|
# 4. Visit http://127.0.0.1:3030 🎉
|
|
```
|
|
|
|
That's it! You have a fully functional Rustelo site with:
|
|
- ✅ Framework-as-dependency architecture
|
|
- ✅ Asset fallback system (Local → Framework → Generated)
|
|
- ✅ Complete project structure
|
|
- ✅ Development server with hot reload
|
|
- ✅ Production build configuration
|
|
|
|
## 📋 Available Commands
|
|
|
|
### **Project Management**
|
|
|
|
#### **`cargo rustelo init <name>`** - Create New Site
|
|
Creates a complete Rustelo implementation with all necessary files.
|
|
|
|
```bash
|
|
# Basic usage
|
|
cargo rustelo init my-site
|
|
|
|
# With custom path
|
|
cargo rustelo init my-blog --path ./sites/my-blog
|
|
|
|
# With different template
|
|
cargo rustelo init my-app --template advanced
|
|
```
|
|
|
|
**What it creates:**
|
|
- Complete `Cargo.toml` with framework dependencies
|
|
- Main application file with working examples
|
|
- Asset directories and configuration
|
|
- Justfile with framework fallbacks
|
|
- Leptos configuration for development
|
|
- All directory structure needed
|
|
|
|
#### **`cargo rustelo dev`** - Development Server
|
|
Starts development server with hot reload and asset watching.
|
|
|
|
```bash
|
|
# Start server on default port (3030)
|
|
cargo rustelo dev
|
|
|
|
# Custom port
|
|
cargo rustelo dev --port 8080
|
|
|
|
# Enable file watching (default)
|
|
cargo rustelo dev --watch
|
|
```
|
|
|
|
#### **`cargo rustelo build`** - Production Build
|
|
Builds optimized production version with asset resolution.
|
|
|
|
```bash
|
|
# Production build
|
|
cargo rustelo build --release
|
|
|
|
# Development build with assets
|
|
cargo rustelo build
|
|
|
|
# Skip asset processing
|
|
cargo rustelo build --no-assets
|
|
|
|
# Build specific asset categories only
|
|
cargo rustelo build --categories static,content
|
|
|
|
# Organize assets by category in output
|
|
cargo rustelo build --organize-by-category
|
|
```
|
|
|
|
#### **`cargo rustelo update`** - Framework Updates
|
|
Updates framework version while preserving local customizations.
|
|
|
|
```bash
|
|
# Update to latest version
|
|
cargo rustelo update
|
|
|
|
# Update to specific version
|
|
cargo rustelo update 1.2.3
|
|
|
|
# Force update (overwrites conflicts)
|
|
cargo rustelo update --force
|
|
```
|
|
|
|
### **Asset Management**
|
|
|
|
#### **`cargo rustelo assets list`** - View Assets
|
|
Shows all available assets and their resolution paths.
|
|
|
|
```bash
|
|
# List all assets
|
|
cargo rustelo assets list
|
|
|
|
# Filter by category
|
|
cargo rustelo assets list --categories static,content
|
|
|
|
# Show category statistics
|
|
cargo rustelo assets list --stats
|
|
```
|
|
|
|
#### **`cargo rustelo assets check`** - Asset Conflicts
|
|
Checks for conflicts between local and framework assets.
|
|
|
|
```bash
|
|
# Check all assets
|
|
cargo rustelo assets check
|
|
|
|
# Check specific categories
|
|
cargo rustelo assets check --categories config
|
|
```
|
|
|
|
#### **`cargo rustelo assets resolve <path>`** - Asset Resolution
|
|
Shows exactly where a specific asset resolves to.
|
|
|
|
```bash
|
|
# Resolve specific asset
|
|
cargo rustelo assets resolve styles/main.css
|
|
|
|
# Shows: Local → Framework → Generated priority
|
|
```
|
|
|
|
#### **`cargo rustelo assets organize`** - Organize Assets
|
|
Organizes assets by category in target directory.
|
|
|
|
```bash
|
|
# Organize all assets
|
|
cargo rustelo assets organize ./organized-assets
|
|
|
|
# Organize specific categories
|
|
cargo rustelo assets organize ./dist --categories static,content
|
|
```
|
|
|
|
### **Build Pipeline**
|
|
|
|
#### **`cargo rustelo pipeline init`** - Setup Build Pipeline
|
|
Initializes advanced build pipeline configuration.
|
|
|
|
```bash
|
|
# Initialize pipeline config
|
|
cargo rustelo pipeline init
|
|
|
|
# Force overwrite existing config
|
|
cargo rustelo pipeline init --force
|
|
```
|
|
|
|
#### **`cargo rustelo pipeline targets`** - List Build Targets
|
|
Shows all available build targets (dev, prod, cross-linux, etc.).
|
|
|
|
#### **`cargo rustelo pipeline run <target>`** - Run Build Target
|
|
Executes specific build target with hooks and asset processing.
|
|
|
|
```bash
|
|
# Run production build target
|
|
cargo rustelo pipeline run prod
|
|
|
|
# Run with custom variables
|
|
cargo rustelo pipeline run dev --vars debug=true,mode=development
|
|
```
|
|
|
|
### **Cross-Compilation** (for CI/CD)
|
|
|
|
#### **`cargo rustelo cross init`** - Setup Cross-Compilation
|
|
Configures Docker-based cross-compilation for building Linux binaries on macOS.
|
|
|
|
```bash
|
|
# Initialize cross-compilation
|
|
cargo rustelo cross init
|
|
|
|
# Custom target and image
|
|
cargo rustelo cross init --target x86_64-unknown-linux-gnu --image rust:latest
|
|
|
|
# Force overwrite existing config
|
|
cargo rustelo cross init --force
|
|
```
|
|
|
|
#### **`cargo rustelo cross build`** - Cross-Compile
|
|
Builds application for Linux using Docker containers.
|
|
|
|
```bash
|
|
# Build for Linux (production)
|
|
cargo rustelo cross build
|
|
|
|
# Development build
|
|
cargo rustelo cross build --mode dev
|
|
|
|
# Custom target
|
|
cargo rustelo cross build --target aarch64-unknown-linux-gnu
|
|
|
|
# Verbose output
|
|
cargo rustelo cross build --verbose
|
|
|
|
# Skip Docker image build if exists
|
|
cargo rustelo cross build --skip-image-build
|
|
```
|
|
|
|
#### **`cargo rustelo cross test`** - Cross-Platform Testing
|
|
Runs tests in cross-compilation environment.
|
|
|
|
```bash
|
|
# Run tests in Linux container
|
|
cargo rustelo cross test
|
|
|
|
# Test specific target
|
|
cargo rustelo cross test --target x86_64-unknown-linux-gnu
|
|
```
|
|
|
|
## 🎯 Common Workflows
|
|
|
|
### **Starting a New Project**
|
|
```bash
|
|
cargo rustelo init my-site
|
|
cd my-site
|
|
cargo rustelo dev
|
|
```
|
|
|
|
### **Adding Features**
|
|
```bash
|
|
# Check available assets
|
|
cargo rustelo assets list
|
|
|
|
# Check what gets overridden
|
|
cargo rustelo assets check
|
|
|
|
# Build with specific features
|
|
cargo rustelo build --categories auth,content
|
|
```
|
|
|
|
### **Production Deployment**
|
|
```bash
|
|
# Build optimized version
|
|
cargo rustelo build --release --organize-by-category
|
|
|
|
# Or use build pipeline
|
|
cargo rustelo pipeline run prod
|
|
|
|
# For Linux servers (from macOS)
|
|
cargo rustelo cross build --mode release
|
|
```
|
|
|
|
### **Framework Updates**
|
|
```bash
|
|
# Update framework dependencies
|
|
cargo rustelo update
|
|
|
|
# Check if any assets need attention
|
|
cargo rustelo assets check
|
|
|
|
# Rebuild with new framework version
|
|
cargo rustelo build
|
|
```
|
|
|
|
## ✨ Benefits Over Manual Setup
|
|
|
|
| **Aspect** | **Manual Setup** | **`cargo rustelo init`** |
|
|
|------------|------------------|--------------------------|
|
|
| **Time** | 30+ minutes | 30 seconds |
|
|
| **Files Created** | 8+ files manually | Everything automated |
|
|
| **Configuration** | Error-prone manual config | Perfect config every time |
|
|
| **Dependencies** | Must know exact versions | Latest compatible versions |
|
|
| **Asset System** | Must understand fallback logic | Working out of the box |
|
|
| **Leptos Config** | Complex metadata setup | Configured automatically |
|
|
| **Framework Updates** | Manual dependency management | `cargo rustelo update` |
|
|
|
|
## 🔄 Typical Development Cycle
|
|
|
|
```bash
|
|
# 1. Create project
|
|
cargo rustelo init my-project && cd my-project
|
|
|
|
# 2. Development with hot reload
|
|
cargo rustelo dev
|
|
|
|
# 3. Check assets and build
|
|
cargo rustelo assets list
|
|
cargo rustelo build
|
|
|
|
# 4. Update framework when needed
|
|
cargo rustelo update
|
|
|
|
# 5. Deploy to production
|
|
cargo rustelo cross build # For Linux servers
|
|
```
|
|
|
|
## 🎉 Result
|
|
|
|
With `cargo rustelo`, you get a **true framework-as-dependency architecture** with:
|
|
|
|
- ✅ **No forking required** - Pure dependency usage
|
|
- ✅ **30-second setup** - From zero to working site instantly
|
|
- ✅ **Asset fallback system** - Local overrides work automatically
|
|
- ✅ **Framework updates** - `cargo rustelo update` gets latest features
|
|
- ✅ **Professional tooling** - All the power, none of the complexity
|
|
- ✅ **Production ready** - Optimized builds, cross-compilation, CI/CD support
|
|
|
|
**This is exactly what modern framework tooling should be!** 🚀 |