Hasty Briefsbeta

Bilingual

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`.