Rush
⚠️ AI-Generated Content Notice: Much of this project's documentation has been generated with AI and may contain errors or incomplete information. This will get replaced as development continues. This is experimental software and NOT recommended for production use.
Rush is an experimental shell scripting language interpreter that combines simple syntax with strict validation and built-in concurrency.
Features
- Variable interpolation with validation
- Built-in variables (
$USER,$HOME,$IS_ROOT) - Control flow with
if/elseandnot - For loops for iteration
- Parallel execution blocks for concurrent tasks
- Interactive input with
input(),confirm(),select(), andmultiselect() - Strict parsing that catches errors before execution
Quick Start
Build:
cargo build --release
Your first script (hello.rsh):
#!/usr/bin/env rush
NAME = "World"
echo "Hello, $NAME!"
Run:
./target/debug/rush hello.rsh
Documentation
📚 Read the full documentation (built with mdBook)
Build and view docs locally:
mdbook serve docs
Then open http://localhost:3000 in your browser.
Or build static HTML:
mdbook build docs
# Open docs/book/index.html
Example Scripts
The documentation includes comprehensive examples:
- Web Deployment - Multi-server deployment with parallel execution
- System Maintenance - Permission-aware system tasks
- Data Pipeline - Parallel batch processing
- CI/CD Pipeline - Build, test, and deploy automation
- Database Backup - Backup with integrity verification
See the Examples section in the documentation.
Project Status
⚠️ Experimental - Not for Production
Rush is under active development. The language design and implementation are subject to change. Current capabilities:
- ✅ Basic scripting features
- ✅ Parallel execution
- ✅ Variable interpolation
- ⚠️ Limited command support
- ❌ No package management
- ❌ No module system
- ❌ Limited error handling
Do not use Rush for:
- Production systems
- Critical automation
- Enterprise deployments
- Anything requiring stability
Contributing
Found an issue? Have a suggestion? Contributions are welcome! This project is experimental and could benefit from community input.
License
See LICENSE file for details.