{"id":13599935,"url":"https://github.com/TaKO8Ki/frum","last_synced_at":"2025-04-10T17:33:01.955Z","repository":{"id":37393135,"uuid":"345714504","full_name":"TaKO8Ki/frum","owner":"TaKO8Ki","description":"A little bit fast and modern Ruby version manager written in Rust","archived":false,"fork":false,"pushed_at":"2022-05-13T14:49:42.000Z","size":859,"stargazers_count":613,"open_issues_count":36,"forks_count":15,"subscribers_count":9,"default_branch":"main","last_synced_at":"2024-05-02T21:29:50.767Z","etag":null,"topics":["farm","rbenv","ruby","rust","version-manager"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TaKO8Ki.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"TaKO8Ki"}},"created_at":"2021-03-08T16:08:30.000Z","updated_at":"2024-05-02T11:59:34.000Z","dependencies_parsed_at":"2022-08-09T14:00:35.732Z","dependency_job_id":null,"html_url":"https://github.com/TaKO8Ki/frum","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TaKO8Ki%2Ffrum","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TaKO8Ki%2Ffrum/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TaKO8Ki%2Ffrum/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TaKO8Ki%2Ffrum/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TaKO8Ki","download_url":"https://codeload.github.com/TaKO8Ki/frum/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223390835,"owners_count":17137875,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["farm","rbenv","ruby","rust","version-manager"],"created_at":"2024-08-01T17:01:19.826Z","updated_at":"2024-11-07T01:31:27.579Z","avatar_url":"https://github.com/TaKO8Ki.png","language":"Rust","funding_links":["https://github.com/sponsors/TaKO8Ki"],"categories":["Rust","Version Managers","Applications"],"sub_categories":["Ruby","System tools"],"readme":"\u003cdiv align=\"center\"\u003e\n\n![frum](./resources/logo.png)\n\nA little bit fast and modern Ruby version manager written in Rust\n\n[![github workflow status](https://img.shields.io/github/workflow/status/TaKO8Ki/frum/CI/main)](https://github.com/TaKO8Ki/frum/actions) [![crates](https://img.shields.io/crates/v/frum.svg?logo=rust)](https://crates.io/crates/frum) [![brew](https://img.shields.io/homebrew/v/frum?color=blue)](https://formulae.brew.sh/formula/frum) [![aur](https://img.shields.io/aur/version/frum-bin?color=yellow)](https://aur.archlinux.org/packages/frum-bin)\n\n![usage](./resources/frum.gif)\n\n\u003c/div\u003e\n\n## Features\n\n- Pure Rust implementation not using `ruby-build`\n- Cross-platform support (macOS, Linux)\n- Works with `.ruby-version` files\n- Auto-Completion\n\n## Goals\n\n- **Blazing-Fast Ruby Installation** - built with speed in mind\n- **Cross-Platform** - works on macOS, Linux and (Windows)\n\n### Benchmark\n\n`eval \"$(frum init)\"` runs about 6 times faster than `eval \"$(rbenv init -)\"`.\n\n| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |\n|:---|---:|---:|---:|---:|\n| `eval \"$(rbenv init -)\"` | 49.5 ± 2.1 | 46.2 | 57.2 | 6.14 ± 0.50 |\n| `eval \"$(frum init)\"` | 8.1 ± 0.7 | 7.0 | 11.8 | 1.00 ± 0.11 |\n| `eval \"$(frum init)\"` (pre-release) | 8.1 ± 0.6 | 7.2 | 11.7 | 1.00 |\n\n| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |\n|:---|---:|---:|---:|---:|\n| `rbenv` | 239628.1 ± 2030.2 | 237681.6 | 245162.6 | 1.04 ± 0.01 |\n| `frum` | 232944.6 ± 1224.0 | 230565.4 | 234863.5 | 1.01 ± 0.01 |\n| `frum` (pre-release) | 230366.5 ± 882.7 | 228454.2 | 232340.5 | 1.00 |\n\nFor more information, please see [#16](https://github.com/TaKO8Ki/frum/pull/16).\n\n## Installation\n\n### Homebrew (Linux/macOS)\n\nIf you’re using Homebrew or Linuxbrew, install the [`frum`](https://formulae.brew.sh/formula/frum) formula. For more information, please see [Install Ruby with Frum](https://mac.install.guide/ruby/14.html) written by Daniel Kehoe.\n\n```\n$ brew install frum\n```\n\n### Arch Linux\n\nIf you’re using Arch Linux, install the [`frum-bin`](https://aur.archlinux.org/packages/frum-bin) or [`frum`](https://aur.archlinux.org/packages/frum) package using your favorite AUR helper.\n\n```\n$ yay -S frum-bin\n```\n\n### Cargo (Linux/macOS)\n\nIf you already have a Rust environment set up, you can use the `cargo install` command:\n\n```\n$ cargo install frum\n```\n\n### Using a release binary (Linux/macOS)\n\n- Download the [latest release binary](https://github.com/TaKO8Ki/frum/releases) for your system\n- Set the `PATH` environment variable\n- Configure your shell profile\n\n## Usage\n\n### Shell Setup\n\nYou 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:\n\n#### Bash\n\nadd the following to your `.bashrc`:\n\n```bash\neval \"$(frum init)\"\n```\n\n#### Zsh\n\nadd the following to your `.zshrc`:\n\n```zsh\neval \"$(frum init)\"\n```\n\n#### Fish shell\n\ncreate `~/.config/fish/conf.d/frum.fish` add this line to it:\n\n```fish\nfrum init | source\n```\n\n### Options\n\n- **--log-level**: The log level of frum commands [default: info] [possible values: quiet, info, error].\n- **--ruby-build-mirror**: [default: https://cache.ruby-lang.org/pub/ruby].\n- **--frum-dir**: The root directory of frum installations [default: $HOME/.frum]. You can set `frum-dir` as the `$FRUM_DIR` environment variable. I recommend that you use the environment variable if you want to use your customized `frum-dir` globally.\n\n### Subcommands\n\n- **init**: Sets environment variables for initializing frum.\n- **install**: Installs the specified Ruby version.\n    - **-l**, **--list**: Lists the Ruby versions available to install.\n- **uninstall**: Uninstall a specific Ruby version.\n- **versions**: Lists installed Ruby versions.\n- **global**: Sets the global Ruby version.\n- **local**: Sets the current Ruby version.\n\n### Ruby configuration options\n\nOptions to configure Ruby can be passed to the `frum install` command.\n\n```sh\n$ frum install --with-openssl-dir=\u003cssl_dir\u003e # Specify the OpenSSL directory\n$ frum install --with-jemalloc # Use jemalloc as allocator\n```\n\nYou can also specify many other options that will be listed when running `./configure -h`.\n\n## Contribution\n\nContributions, issues and pull requests are welcome!\n\n## Reference\n\n- [Schniz/fnm](https://github.com/Schniz/fnm)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTaKO8Ki%2Ffrum","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTaKO8Ki%2Ffrum","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTaKO8Ki%2Ffrum/lists"}