No description
Find a file
2019-12-27 00:55:35 -05:00
.github/workflows add github workflow 2019-12-24 00:43:32 -05:00
.vscode add spellcheck ignore 2019-12-22 22:09:46 -05:00
aux/systemd add pkgbuild 2019-12-27 00:28:49 -05:00
src remove libc and daemonize option 2019-12-27 00:02:12 -05:00
.gitignore add out folder to gitignore 2019-12-27 00:01:33 -05:00
bunbun.default.yaml update config file format 2019-12-24 00:05:56 -05:00
Cargo.lock bump version to 0.5.0 2019-12-27 00:37:21 -05:00
Cargo.toml bump version to 0.5.0 2019-12-27 00:37:21 -05:00
LICENSE 0.1.0 release 2019-12-15 14:57:42 -05:00
PKGBUILD updated pkgbuild for 0.5.0 2019-12-27 00:55:35 -05:00
README.md fix typo in prod release guide 2019-12-26 15:10:27 -05:00
rustfmt.toml remove unused error trait 2019-12-22 20:05:01 -05:00

bunbun

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.

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

Installation

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. You should model your own custom routes after the provided ones.

Building for prod

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

  1. cargo build --release
  2. strip target/release/bunbun
  3. 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.

Configuration

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.

Reasons to use bunbun

  • 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).
  • Convenient: bunbun watches for config changes and refreshes its routes automatically, allowing for rapid development.
  • Memory-safe: Built with Rust.