RustyAct
RustyAct is a fast, extensible project scaffolding tool inspired by Create React App, but built in Rust for maximum performance and safety. Generate modern web applications (JS & TS), PWAs, SSR projects, and more with zero-config or fully interactive setups.
🚀 Features
-
Blazing Fast: Written in Rust, leveraging async I/O and minimal filesystem syncs
-
Zero-Config Init:
rustyact init <project-name>
to scaffold with sensible defaults -
Interactive Mode: Customize templates, styles, state management, testing frameworks
-
Multiple Templates:
- JavaScript (ESM/CJS) & TypeScript
- PWA, SSR, Mobile (React Native)
- Custom community templates via plugin marketplace
-
Plugin System: Add or write plugins for i18n, GraphQL, CMS, UI kits
-
Dev Server: Hot reload, file watching, proxy support & custom middleware
-
Build & Publish: One command bundle & optimize your output
-
Config Migration: Upgrade templates and project configs seamlessly
-
Rich CLI UX: Colored output, progress bars, prompts, and error reporting
-
Cross-Platform: Windows, macOS, Linux support
🛠️ Installation
Ensure you have Rust & Cargo installed.
Or add to your project:
[]
= "^0.1.0"
🎬 Quick Start
# Scaffold a new project
# Change directory
# Start development server
# Build for production
⚙️ CLI Commands
Command | Description |
---|---|
rustyact init <name> |
Scaffold a new project with default or interactive mode |
rustyact serve [options] |
Run dev server with hot reload |
rustyact build [options] |
Bundle and optimize for production |
rustyact test |
Run unit & E2E tests |
rustyact plugin add <name> |
Install community or custom plugin |
rustyact config |
View or edit global/project configuration |
Use rustyact <command> --help
for detailed flags and options.
🔌 Plugin System
RustyAct supports dynamic plugins shipped as Cargo crates or binaries:
-
Add a plugin via CLI:
-
List installed plugins:
-
Develop your own plugin:
- Implement the RustyAct plugin trait
- Publish to crates.io
- Users can install via CLI
🗂️ Template Packs
Templates live in separate repos or archives. Use remote or local packs:
# Use an official remote pack
# Use a local folder
🛡️ Configuration
RustyAct reads from rustyact.config.toml
in project root and $HOME/.config/rustyact/config.toml
:
# Example project config
= "my-app"
= "typescript"
[]
= "zustand"
= "jest"
🛣️ Roadmap
- Template Marketplace
- Official CI/CD integrations
- Dockerized builds
- Improved plugin SDK & docs
- UI for interactive templates
Contributions and feedback are welcome!
🙌 Contributing
- Fork the repo
- Create a feature branch (
git checkout -b feat/awesome
) - Commit your changes (
git commit -m "feat: add awesome feature"
) - Push to the branch (
git push origin feat/awesome
) - Open a Pull Request
Please read CONTRIBUTING.md for details.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ and 🚀 by the RustyAct team