||2 months ago|
|.github/workflows||3 years ago|
|.vscode||3 years ago|
|aux||3 years ago|
|src||2 months ago|
|.gitignore||2 years ago|
|Cargo.lock||2 months ago|
|Cargo.toml||2 months ago|
|LICENSE||3 years ago|
|PKGBUILD||2 years ago|
|README.md||2 months ago|
|bunbun.default.yaml||2 years ago|
|code_coverage||2 years ago|
Self-hostable, easy-to-configure, fast search/jump multiplexer service.
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 reddit.com/r/anime 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
upx --lzmaon 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
/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.
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:
cargo build --release
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
If configuring for development, no further configuration is required. If running
this for production, you should edit the
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.