Rush Shell v0.5.8
A comprehensive POSIX sh-compatible shell implementation written in Rust
Rush is a feature-rich Unix shell that combines the reliability and safety of Rust with full POSIX compliance. Built from the ground up with performance, security, and maintainability in mind.
๐ Quick Start
Interactive Mode
./target/release/rush-sh
Start the shell in interactive mode with a modern prompt
Script Mode
./target/release/rush-sh script.sh
Execute commands from a file
Command Mode
./target/release/rush-sh -c "echo Hello World"
Execute a single command string
โจ Key Features
Full POSIX Compliance
Implements IEEE Std 1003.1-2008 with comprehensive support for shell grammar, built-in utilities, and standard behavior
View Compliance Status โHigh Performance
Leverages Rust's zero-cost abstractions for optimal execution speed while maintaining memory safety
View Benchmarks โMemory Safe
Built with Rust's ownership system ensuring no memory leaks, data races, or segmentation faults
Modern Interface
Enhanced with colors, tab completion, and intelligent prompt with condensed directory display
Rich Feature Set
18 built-in commands, advanced expansions, control structures, and comprehensive variable support
Explore Features โThoroughly Tested
323+ test cases covering all components with comprehensive edge case and error condition coverage
๐ What's New
Complete Control Structures
Full implementation of POSIX control structures including for loops, while loops, and function definitions with local variable scoping
Advanced Arithmetic Expansion
Complete $((...)) arithmetic expression evaluator with proper operator precedence and variable integration
Enhanced Built-in Commands
Comprehensive set of 18 built-in commands including directory stack management, alias support, and color theming
Intelligent Tab Completion
Advanced completion system for commands, files, directories, and paths with nested directory traversal
๐ฏ Getting Started
Build the Project
git clone https://github.com/drewwalton19216801/rush-sh.git
cd rush-sh
cargo build --release
Start Interactive Shell
./target/release/rush-sh
Try Basic Commands
echo "Hello, Rush!"
ls -la
pwd