- Pure Rust implementation not using
ruby-build - Cross-platform support (macOS, Linux)
- Works with
.ruby-versionfiles - Auto-Completion
- Blazing-Fast Ruby Installation - built with speed in mind
- Cross-Platform - works on macOS, Linux and (Windows)
eval "$(frum init)" runs about 6 times faster than eval "$(rbenv init -)".
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
eval "$(rbenv init -)" |
49.5 ± 2.1 | 46.2 | 57.2 | 6.14 ± 0.50 |
eval "$(frum init)" |
8.1 ± 0.7 | 7.0 | 11.8 | 1.00 ± 0.11 |
eval "$(frum init)" (pre-release) |
8.1 ± 0.6 | 7.2 | 11.7 | 1.00 |
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
rbenv |
239628.1 ± 2030.2 | 237681.6 | 245162.6 | 1.04 ± 0.01 |
frum |
232944.6 ± 1224.0 | 230565.4 | 234863.5 | 1.01 ± 0.01 |
frum (pre-release) |
230366.5 ± 882.7 | 228454.2 | 232340.5 | 1.00 |
For more information, please see #16.
If you’re using Homebrew or Linuxbrew, install the frum formula. For more information, please see Install Ruby with Frum written by Daniel Kehoe.
$ brew install frum
If you’re using Arch Linux, install the frum-bin or frum package using your favorite AUR helper.
$ yay -S frum-bin
If you already have a Rust environment set up, you can use the cargo install command:
$ cargo install frum
- Download the latest release binary for your system
- Set the
PATHenvironment variable - Configure your shell profile
You need to run some shell commands before using frum. All you have to do is evaluate the output of frum init. Check out the following guides for the shell you use:
add the following to your .bashrc:
eval "$(frum init)"add the following to your .zshrc:
eval "$(frum init)"create ~/.config/fish/conf.d/frum.fish add this line to it:
frum init | source- --log-level: The log level of frum commands [default: info] [possible values: quiet, info, error].
- --ruby-build-mirror: [default: https://cache.ruby-lang.org/pub/ruby].
- --frum-dir: The root directory of frum installations [default: $HOME/.frum]. You can set
frum-diras the$FRUM_DIRenvironment variable. I recommend that you use the environment variable if you want to use your customizedfrum-dirglobally.
- init: Sets environment variables for initializing frum.
- install: Installs the specified Ruby version.
- -l, --list: Lists the Ruby versions available to install.
- uninstall: Uninstall a specific Ruby version.
- versions: Lists installed Ruby versions.
- global: Sets the global Ruby version.
- local: Sets the current Ruby version.
Options to configure Ruby can be passed to the frum install command.
$ frum install --with-openssl-dir=<ssl_dir> # Specify the OpenSSL directory
$ frum install --with-jemalloc # Use jemalloc as allocatorYou can also specify many other options that will be listed when running ./configure -h.
Contributions, issues and pull requests are welcome!

