Brush (Bo(u)rn(e) RUsty SHell) a POSIX and Bash-Compatible Shell in Rust
a year ago
- #shell
- #rust
- #bash-compatible
- brush is a POSIX- and bash-compatible shell implemented in Rust.
- It works on Linux, macOS, and experimentally on Windows (via WSL).
- Functional for interactive use but not recommended for production yet.
- Supports most sh and bash scripts, with known limitations tracked in issues.
- Contributions and feedback are welcome; MIT licensed.
- Install via `cargo install --locked brush-shell` or clone the repo.
- Nix and Arch Linux users have specific installation methods.
- Customizable via `~/.brushrc`; processes `.bashrc` by default.
- Known gaps include some `set`/`shopt` options and unimplemented features.
- Tested with 550+ cases comparing output and exit codes with other shells.
- Relies on crates like `reedline`, `clap`, `fancy-regex`, `tokio`, and `nix`.
- Uses `pprof-rs`, `criterion.rs`, and `bash-completion` for testing and support.
- Inspirational shells include `nushell`, `rusty_bash`, and `mvdan/sh`.