Start Anywhere, Scale Anywhere
FerrisUp is a versatile Rust project bootstrapping tool that enables developers to create, transform, and scale Rust projects with ease. Unlike other project generators, FerrisUp supports the entire project lifecycle from simple beginnings to complex architectures.
- Detailed Documentation - Complete usage guide and examples
- Installation Guide - How to install FerrisUp
- Changelog - Recent updates and version history
- Contributing - How to contribute to FerrisUp
- License - License information
- Project Transformation - Convert single-crate projects to workspaces as they grow
- Component-Based Architecture - Specialized components for different use cases
- Domain-Specific Components - Optimized components for web, data science, embedded, and more
- Smart Dependency Management - Interactive dependency handling with feature selection
- Framework Support - Direct support for popular Rust frameworks per component type.
- Cloud Provider Integration - Optimized configurations for major cloud providers
Unlike traditional template generators like cargo-generate, FerrisUp focuses on project evolution. Start with a simple project and transform it as your needs grow, without having to recreate your project structure from scratch.
This repository is organized as a Rust workspace with the following components:
ferrisup- The main CLI tool and all its functionality
# Install from crates.io
cargo install ferrisup
# Or install from source
git clone https://github.com/Jitpomi/ferrisup.git
cd ferrisup
cargo install --path ./ferrisup# Create a new project (interactive mode)
ferrisup new
# Create a specific type of project
ferrisup new my_app --component-type server --framework axum
# Transform an existing project
ferrisup transformFor complete documentation and examples, see the detailed README.
To build all components in the workspace:
cargo buildTo run tests for all components:
cargo testTo add a new component to the workspace:
ferrisup transformIf FerrisUp helps you build amazing Rust projects, consider supporting its development:
Your support helps:
- 🚀 Accelerate Development - More time for new features and improvements
- 🐛 Better Bug Fixes - Faster response to issues and community needs
- 📚 Enhanced Documentation - Comprehensive guides and tutorials
- 🌟 New Templates - Support for emerging Rust frameworks and tools
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Built with ❤️ by Jitpomi
