# 🗡️ zoro
*A blazingly fast and sharp shell built in Rust.*
[](https://crates.io/crates/zoro)
[](https://opensource.org/licenses/MIT)
---
## About The Project
Zoro is a modern, POSIX-compliant shell built from the ground up in Rust. The primary goal of this project is to serve as a deep dive into the fundamentals of shell internals, operating systems concepts, and low-level systems programming.
It aims to be not just a functional shell, but a well-documented and educational resource for anyone looking to understand how shells work under the hood.
## 🚧 Current Status: Pre-Alpha
**Warning:** Zoro is currently in the very early stages of development and is **not yet suitable for daily use**. It is a work-in-progress learning project.
### Implemented Features
* Basic Read-Eval-Print Loop (REPL) that can accept input.
* Graceful exit via `Ctrl+D`.
### Roadmap
The immediate goals are to implement the core features of a shell:
- [ ] **Parsing:** Tokenize and parse user input into commands and arguments.
- [ ] **Execution:** Use `fork` and `execve` to run external commands.
- [ ] **Built-ins:** Implement essential built-in commands like `cd`, `pwd`, `exit`, and `export`.
- [ ] **PATH Handling:** Search the `PATH` environment variable to find executables.
- [ ] **I/O Redirection:** Implement `>` (output), `<` (input), and `|` (pipes).
- [ ] **Error Handling:** Provide robust and user-friendly error messages.
## Installation
Zoro is published on `crates.io`. To try it out, you must build it from the source code or install from cargo.
1. **Clone the repository:**
```sh
git clone [https://github.com/simplysabir/zoro.git](https://github.com/simplysabir/zoro.git)
cd zoro
```
2. **Build and run using Cargo:**
```sh
cargo run
```
## Usage
Once you run the command above, you will be greeted with the Zoro prompt. For now, it will simply echo back any input you provide.
```sh
$ cargo run
Compiling zoro v0.1.0 (/path/to/zoro-shell)
Finished dev [unoptimized + debuginfo] target(s) in 0.50s
Running `target/debug/zoro`
[zoro] > hello world
echo: hello world
[zoro] >