You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Edward Shen 0f27cfb788
4 weeks ago
.github/workflows add github workflow 3 years ago
.vscode typo fixes 3 years ago
aux add automatic packaging script 3 years ago
src clippy 4 weeks ago
.gitignore Add tests, use tarpaulin 2 years ago
Cargo.lock Update deps 4 weeks ago
Cargo.toml Update deps 4 weeks ago
LICENSE 0.1.0 release 3 years ago
PKGBUILD update pkgbuild to 0.8.0 2 years ago Remove strip instructions 8 months ago
bunbun.default.yaml Add JSON parsing from executables 2 years ago
code_coverage Add tests, use tarpaulin 2 years ago


Self-hostable, easy-to-configure, fast search/jump multiplexer service.

bunbun is a pure-Rust implementation of bunny1, providing a customizable search engine and quick-jump tool in one small binary.

After adding it to your web-browser and setting it as your default search engine, you'll gain the ability to quick-jump to a specific page or search from a specific engine:

g hello world   // Searches "hello world" in google
r anime         // Goes to
ls              // Lists all available commands and aliases
foo bar         // If foo is a defined command, do something with bar
                // Alternatively, if a default route is set, use the entire
                // query for the default route

Reasons to use bunbun

  • Convenient: bunbun watches for config changes and refreshes its routes automatically, allowing for rapid development.
  • Extensible: supports simple route substitution or execution of arbitrary programs for complex route resolution.
  • Portable: bunbun runs off a single binary and config file.
  • Small: binary is 1.3MB (after running strip and upx --lzma on the release binary).
  • Memory-safe: Built with Rust.


If you have cargo, you can simply run cargo install bunbun.

Once installed, simply run it. A default config file will be created if one does not exist.

If you're looking to run this as a daemon (as most would do), you should put the binary in /usr/bin and copy aux/systemd/bunbun.service into your preferred systemd system folder. Then you may run systemctl enable bunbun --now to start a daemon instance of bunbun.

If running Arch Linux, you may use the provided PKGBUILD to install bunbun. Run makepkg followed by sudo pacman -U bunbun.<version>.tar.gz. This installs the systemd service for you. Run systemctl enable bunbun --now to start bunbun as a daemon.

Building for production

If you're looking to build a release binary, here are the steps I use:

  1. cargo build --release
  2. upx --lzma target/release/bunbun

LZMA provides the best level of compress for Rust binaries; it performs at the same level as upx --ultra-brute without the time cost and without breaking the binary.


If configuring for development, no further configuration is required. If running this for production, you should edit the public_address field.

the config file is watched, so updates are immediate unless invalid, or if you're using certain programs such as nvim, which performs updating a file via swapping rather than directly updating the file.

Adding bunbun as a search engine

bunbun supports the OpenSearch Description Format. Visit the root page of your desired instance of bunbun to learn more.