[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-224":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":9,"totalLinesOfCode":9,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":9,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":30,"readmeContent":31,"aiSummary":32,"trendingCount":16,"starSnapshotCount":16,"syncStatus":33,"lastSyncTime":34,"discoverSource":35},224,"brush","reubeno\u002Fbrush","reubeno","🐚bash\u002FPOSIX-compatible shell implemented in Rust 🦀",null,"https:\u002F\u002Fgithub.com\u002Freubeno\u002Fbrush","Rust",2037,101,11,96,0,9,33,249,27,28.03,false,"main",[25,26,27,28,29],"bash","posix-shell","rust","script","shell","2026-06-12 02:00:10","\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F266b83a6-bacb-408c-afb7-2a2ddf37b272\"\u002F>\n\u003C\u002Fdiv>\n\n\u003Cbr\u002F>\n\n\u003C!-- Primary badges -->\n\u003Cp align=\"center\">\n  \u003C!-- crates.io version badge -->\n  \u003Ca href=\"https:\u002F\u002Fcrates.io\u002Fcrates\u002Fbrush-shell\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fv\u002Fbrush-shell?style=flat-square\"\u002F>\u003C\u002Fa>\n  \u003C!-- msrv badge -->\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fmsrv\u002Fbrush-shell\"\u002F>\n  \u003C!-- license badge -->\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue?style=flat-square\"\u002F>\n  \u003Cbr\u002F>\n  \u003C!-- crates.io download badge -->\n  \u003Ca href=\"https:\u002F\u002Fcrates.io\u002Fcrates\u002Fbrush-shell\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fd\u002Fbrush-shell?style=flat-square\"\u002F>\u003C\u002Fa>\n  \u003C!-- compat tests badge -->\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcompat_tests-1389-brightgreen?style=flat-square\" alt=\"1389 compatibility tests\"\u002F>\n  \u003C!-- Packaging badges -->\n  \u003Ca href=\"https:\u002F\u002Frepology.org\u002Fproject\u002Fbrush\u002Fversions\">\n    \u003Cimg src=\"https:\u002F\u002Frepology.org\u002Fbadge\u002Ftiny-repos\u002Fbrush.svg\" alt=\"Packaging status\"\u002F>\n  \u003C\u002Fa>\n  \u003C!-- Social badges -->\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FkPRgC9j3Tj\">\n    \u003Cimg src=\"https:\u002F\u002Fdcbadge.limes.pink\u002Fapi\u002Fserver\u002Fhttps:\u002F\u002Fdiscord.gg\u002FkPRgC9j3Tj?compact=true&style=flat\" alt=\"Discord invite\"\u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Ca href=\"https:\u002F\u002Frepology.org\u002Fproject\u002Fbrush\u002Fversions\">\n\u003C\u002Fa>\n\n\u003C\u002Fp>\n\n\u003Chr\u002F>\n\n`brush` (**B**o(u)rn(e) **RU**sty **SH**ell) is a modern [bash-](https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Fbash\u002F) and [POSIX-](https:\u002F\u002Fpubs.opengroup.org\u002Fonlinepubs\u002F9699919799\u002Futilities\u002FV3_chap02.html) compatible shell written in Rust. Run your existing scripts and `.bashrc` unchanged -- with syntax highlighting and auto-suggestions built in.\n\n## At a glance\n\n✅ Your existing `.bashrc` just works—aliases, functions, completions, all of it.\u003Cbr\u002F>\n✨ Syntax highlighting and auto-suggestions built in.\u003Cbr\u002F>\n🧪 Validated against bash with [~1700 compatibility tests](brush-shell\u002Ftests\u002Fcases).\u003Cbr\u002F>\n🧩 Easily embeddable in your Rust apps using `brush_core::Shell`.\u003Cbr\u002F>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F0e64d1b9-7e4e-43be-8593-6c1b9607ac52\" width=\"80%\"\u002F>\n\u003C\u002Fp>\n\n> ⚠️ **Not everything works yet:** `select` and some edge cases aren't supported. See the [Compatibility Reference](docs\u002Freference\u002Fcompatibility.md) for details.\n\n### Quick start:\n\n```console\n$ cargo binstall brush-shell         # using cargo-binstall\n$ brew install brush                 # using Homebrew\n$ pacman -S brush                    # Arch Linux\n$ cargo install --locked brush-shell # Build from sources\n```\n\n`brush` is ready for use as a daily driver. We test every change against `bash` to keep it that way.\n\nMore detailed installation instructions are available below.\n\n## ✨ Features\n\n### 🐚 `bash` Compatibility\n\n| | Feature | Description |\n|--|---------|-------------|\n| ✅ | **50+ builtins** | `echo`, `declare`, `read`, `complete`, `trap`, `ulimit`, ... |\n| ✅ | **Full expansions** | brace, parameter, arithmetic, command\u002Fprocess substitution, globs, `extglob`, `globstar` |\n| ✅ | **Control flow** | `if`\u002F`for`\u002F`while`\u002F`until`\u002F`case`, `&&`\u002F`\\|\\|`, subshells, pipelines, etc. |\n| ✅ | **Redirection** | here docs, here strings, fd duplication, process substitution redirects |\n| ✅ | **Arrays & variables** | indexed\u002Fassociative arrays, dynamic variables, standard well-known variables, etc. |\n| ✅ | **Programmable completion** | Works with [bash-completion](https:\u002F\u002Fgithub.com\u002Fscop\u002Fbash-completion) out of the box |\n| ✅ | **Job control** | background jobs, suspend\u002Fresume, `fg`\u002F`bg`\u002F`jobs` |\n| 🔷 | **Traps & options** | `DEBUG`\u002F`ERR`\u002F`EXIT` traps work; signal traps and options in progress |\n\n### ⌨️ User Experience\n\n| | Feature | Description |\n|--|---------|-------------|\n| ✅ | **Syntax highlighting** | Real-time as you type ([reedline](https:\u002F\u002Fgithub.com\u002Fnushell\u002Freedline)) |\n| ✅ | **Auto-suggestions** | History-based hints as you type ([reedline](https:\u002F\u002Fgithub.com\u002Fnushell\u002Freedline)) |\n| ✅ | **Rich prompts** | `PS1`\u002F`PROMPT_COMMAND`, right prompts, [starship](https:\u002F\u002Fstarship.rs) compatible |\n| ✅ | **TOML config** | `~\u002F.config\u002Fbrush\u002Fconfig.toml` for persistent settings |\n| 🧪 | **Extras** | `fzf`\u002F`atuin` support, zsh-style `precmd`\u002F`preexec` hooks (experimental), VS Code terminal integration |\n\n## Installation\n\n_When you run `brush`, it should look exactly as `bash` does on your system: it processes your `.bashrc` and\nother standard configuration. If you'd like to distinguish the look of `brush` from the other shells\non your system, you may author a `~\u002F.brushrc` file._\n\n\u003Cdetails>\n\u003Csummary>🍺 \u003Cb>Installing using Homebrew\u003C\u002Fb> (macOS\u002FLinux)\u003C\u002Fsummary>\n\nHomebrew users can install using [the `brush` formula](https:\u002F\u002Fformulae.brew.sh\u002Fformula\u002Fbrush):\n\n```bash\nbrew install brush\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>🐧 \u003Cb>Installing on Arch Linux\u003C\u002Fb>\u003C\u002Fsummary>\n\nArch Linux users can install `brush` from the official [extra repository](https:\u002F\u002Farchlinux.org\u002Fpackages\u002Fextra\u002Fx86_64\u002Fbrush\u002F):\n\n```bash\npacman -S brush\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>🚀 \u003Cb>Installing prebuilt binaries via `cargo binstall`\u003C\u002Fb>\u003C\u002Fsummary>\n\nYou may use [cargo binstall](https:\u002F\u002Fgithub.com\u002Fcargo-bins\u002Fcargo-binstall) to install pre-built `brush` binaries. Once you've installed `cargo-binstall` you can run:\n\n```bash\ncargo binstall brush-shell\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>🚀 \u003Cb>Installing prebuilt binaries from GitHub\u003C\u002Fb>\u003C\u002Fsummary>\n\nWe publish prebuilt binaries of `brush` for Linux (x86_64, aarch64) and macOS (aarch64) to GitHub for official [releases](https:\u002F\u002Fgithub.com\u002Freubeno\u002Fbrush\u002Freleases). You can manually download and extract the `brush` binary from one of the archives published there, or otherwise use the GitHub CLI to download it, e.g.:\n\n```bash\ngh release download --repo reubeno\u002Fbrush --pattern \"brush-x86_64-unknown-linux-gnu.*\"\n```\n\nAfter downloading the archive for your platform, you may verify its authenticity using the [GitHub CLI](https:\u002F\u002Fcli.github.com\u002F), e.g.:\n\n```bash\ngh attestation verify brush-x86_64-unknown-linux-gnu.tar.gz --repo reubeno\u002Fbrush\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>🐧 \u003Cb>Installing using Nix\u003C\u002Fb>\u003C\u002Fsummary>\n\nIf you are a Nix user, you can use the registered version:\n\n```bash\nnix run 'github:NixOS\u002Fnixpkgs\u002Fnixpkgs-unstable#brush' -- --version\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary> 🔨 \u003Cb>Building from sources\u003C\u002Fb>\u003C\u002Fsummary>\n\nTo build from sources, first install a working (and recent) `rust` toolchain; we recommend installing it via [`rustup`](https:\u002F\u002Frustup.rs\u002F). Then run:\n\n```bash\ncargo install --locked brush-shell\n```\n\n\u003C\u002Fdetails>\n\n## Community & Contributing\n\nThis project started out of curiosity and a desire to learn—we're keeping that attitude. If something doesn't work the way you'd expect, [let us know](https:\u002F\u002Fgithub.com\u002Freubeno\u002Fbrush\u002Fissues)!\n\n* [Discord server](https:\u002F\u002Fdiscord.gg\u002FkPRgC9j3Tj) — chat with the community\n* [Building from source](docs\u002Fhow-to\u002Fbuild.md) — development workflow\n* [Contribution guidelines](CONTRIBUTING.md) — how to submit changes\n* [Technical docs](docs\u002FREADME.md) — architecture and reference\n\n## Related Projects\n\nOther POSIX-ish shells implemented in non-C\u002FC++ languages:\n\n* [`nushell`](https:\u002F\u002Fwww.nushell.sh\u002F) — modern Rust shell (provides `reedline`)\n* [`fish`](https:\u002F\u002Ffishshell.com) — user-friendly shell ([Rust port in 4.0](https:\u002F\u002Ffishshell.com\u002Fblog\u002Frustport\u002F))\n* [`Oils`](https:\u002F\u002Fgithub.com\u002Foils-for-unix\u002Foils) — bash-compatible with new Oil language\n* [`mvdan\u002Fsh`](https:\u002F\u002Fgithub.com\u002Fmvdan\u002Fsh) — Go implementation\n* [`rusty_bash`](https:\u002F\u002Fgithub.com\u002Fshellgei\u002Frusty_bash) — another Rust bash-like shell\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🙏 Credits\u003C\u002Fb>\u003C\u002Fsummary>\n\nThis project relies on many excellent OSS crates:\n\n* [`reedline`](https:\u002F\u002Fgithub.com\u002Fnushell\u002Freedline) — readline-like input and interactive features\n* [`clap`](https:\u002F\u002Fgithub.com\u002Fclap-rs\u002Fclap) — command-line parsing\n* [`fancy-regex`](https:\u002F\u002Fgithub.com\u002Ffancy-regex\u002Ffancy-regex) — regex support\n* [`tokio`](https:\u002F\u002Fgithub.com\u002Ftokio-rs\u002Ftokio) — async runtime\n* [`nix`](https:\u002F\u002Fgithub.com\u002Fnix-rust\u002Fnix) — Unix\u002FPOSIX APIs\n* [`criterion.rs`](https:\u002F\u002Fgithub.com\u002Fbheisler\u002Fcriterion.rs) — benchmarking\n* [`bash-completion`](https:\u002F\u002Fgithub.com\u002Fscop\u002Fbash-completion) — completion test suite\n\n\u003C\u002Fdetails>\n\n---\n\nLicensed under the [MIT license](LICENSE).\n","`brush` 是一个用 Rust 编写的与 bash 和 POSIX 兼容的现代 shell。其核心功能包括支持现有的 `.bashrc` 文件（包括别名、函数和补全），内置语法高亮和自动建议，并通过约 1700 个兼容性测试验证了与 bash 的一致性。此外，`brush` 可以轻松嵌入到 Rust 应用程序中。适用于需要 bash 功能但又希望利用 Rust 语言优势的场景，如提高安全性和性能。尽管目前尚不支持 `select` 命令及一些边缘情况，`brush` 已经可以作为日常使用的 shell。",2,"2026-06-11 02:31:43","trending"]