A standalone, POSIX-compliant shell written in Rust.
Shelly is a fully standalone, POSIX-compliant shell written in Rust. It is designed to be a lightweight yet powerful alternative to traditional shells, providing fast execution and robust scripting capabilities. Unlike many shell implementations, Shelly does not rely on external dependencies for core functionality, ensuring high performance and portability.
- Standalone Implementation: Does not rely on existing shell interpreters or external runtime dependencies.
- POSIX Compliance: Adheres to the POSIX shell standard, ensuring compatibility with shell scripts and common UNIX utilities.
- Rust-Based: Built entirely in Rust for safety, speed, and reliability.
- Extensible and Modular: Designed for easy integration with other Rust projects and custom extensions.
- Efficient Execution: Optimized for minimal overhead and fast command execution.
To get started with Shelly, follow these steps:
- Clone the repository:
git clone https://github.com/botirk38/shelly.git
- Change into the project directory:
cd shelly
- Build the project:
cargo build
- Run the shell:
cargo run
- Rust: Install Rust (version 1.64 or later) on your system.
- Cargo: Ensure Cargo (version 1.64 or later) is available as the package manager.
- Compatible operating systems: Linux, macOS, Windows (with a UNIX-like environment)
- Recommended: A terminal emulator that supports ANSI escape sequences
- Clone the repository:
git clone https://github.com/botirk38/shelly.git
- Change into the project directory:
cd shelly
- Build the project:
cargo build
- Install the shell globally (optional):
cargo install --path .
- Run a simple command:
echo "Hello, World!"
- List directory contents:
ls -l
- Change directory:
cd /path/to/directory
- Execute a script:
./script.sh
- Use Shelly as the default shell:
chsh -s $(which shelly)
- Create shell scripts with POSIX syntax and execute them using Shelly.
- Utilize built-in shell functions and scripting features for automation.
Currently, there is no structured API reference available. However, detailed documentation on built-in commands and shell behavior will be provided in future updates.
To build and run Shelly locally:
- Clone the repository:
git clone https://github.com/botirk38/shelly.git
- Change into the project directory:
cd shelly
- Build the project:
cargo build
- Run the shell:
cargo run
To deploy Shelly, you can:
- Build a release binary:
cargo build --release
and distribute it as a standalone executable. - Use Docker: Build a Docker image and distribute it in containerized environments.
Contributions are welcome! Follow these steps:
- Fork the repository
- Create a new branch (
git checkout -b feature-branch
) - Commit your changes (
git commit -m "Add feature"
) - Push to the branch (
git push origin feature-branch
) - Open a pull request
- Be respectful and considerate of others.
- Follow best practices for Rust development and POSIX compliance.
- Ensure your contributions are well-documented and tested.
This project is licensed under the MIT License.