Skip to content

spinel-coop/rv

rv, a very fast Ruby gem and project manager

Auto-installed and managed Ruby versions and gems.

  • Run any command or script that needs ruby with rv run NAME.
  • Run any gem command immediately, like rvx rails new myapp.
  • Install project gems with rv clean-install.
  • Install gem CLIs in isolated environments with rv tool install NAME.

Install

On macOS or Linux, install rv with Homebrew:

brew install rv

Alternatively, use the standalone installer script:

curl -LsSf https://rv.dev/install | sh

On Windows, open PowerShell as Administrator and run:

powershell -ExecutionPolicy Bypass -c "irm https://rv.dev/install.ps1 | iex"

Note: On Windows PowerShell, use rvw instead of rv because rv is an alias for the built-in Remove-Variable.

For other installation options or to download specific versions manually, visit the releases page.

Usage

rv run [ruby|irb|myscript.rb] # run any command or script with Ruby available
rvx rails new . # run any gem CLI directly
rv tool install rerun # install CLI tools into dedicated environments
rv clean-install # install project Ruby and gems from Gemfile.lock
rv ruby pin 4.0.0 # set a project Ruby version
rv shell [zsh|bash|fish|nu|powershell] # set up automatic version switching

On Windows PowerShell, use rvw instead of rv:

rvw run ruby             # run any command or script with Ruby available
rvw clean-install        # install project Ruby and gems from Gemfile.lock
rvw shell powershell     # set up automatic version switching

See SHELL INTEGRATION for more about .ruby-version and automatic version switching.

Install Ruby in under 2 seconds

rv installs ruby 3.4.7 in 1.8 seconds

For details, see INSTALL_BENCHMARK.md.

Configuration

rv supports configuration via a rv.kdl file at the project or user level, and via environment variables prefixed with RV_.

See SETTINGS.md for all settings, allowed values, and configuration precedence.

Testimonials

"what the heckie that just installed a ruby version for me in .22 seconds???" — c. ruiyi smallbird

"Holy wow that thing _flies_." — Andrea Fomera

Requirements

  • Operating Systems: macOS 14+, Linux glibc 2.35+, Windows 10+
  • Architectures: x86, arm64
  • Ruby Versions: Ruby 3.2, 3.3, 3.4, and 4.0.
  • Shells: zsh, bash, fish, nushell, PowerShell. See SHELL INTEGRATION for more.

From Spinel Cooperative

Spinel.coop can bring your team an obsession with developer productivity and decades of experience from the core teams of Rails, Hotwire, Bundler, and rbenv. Book a free call with us to get started today.

Community

Join us in the rv category on the Ruby Users Forum, the #rv channel in the the Bundler Slack, and the Spinel Discord.

Plans

All-in-one tooling for Ruby developers.

  • Install & manage all Ruby versions.
  • Manage gems, applications, CLI tools, and scripts, effortlessly.
  • Handle everything Ruby provided by rvm, rbenv, chruby, asdf, mise, ruby-build, ruby-install, bundler, and rubygems, all at once.
  • Install Ruby and all your gems in seconds, without having to compile anything ever again.
  • Install ruby-head versions to ease working with Ruby development builds.
  • A mise plugin, so you can get fast no-fuss Ruby installs even without rv.

Future features

  • Run any script, installing all needed gems, like rv run script.rb.
  • Manage project gems with rv sync, rv add, and rv remove.
  • Create gems with rv gem new, and publish them with rv gem publish.

See PLANS.md for more on our future plans.

Contributing

Install dependencies on macOS or Ubuntu with bin/setup. Make changes, and then run the development binary with bin/rv, or install the development binary to your system with bin/install.

On Windows, equivalent PowerShell scripts are available in bin\powershell\.

When you're done, make sure to run the tests with bin/test, and the linter with bin/lint. Then, send us a pull request! We love pull requests.

FAQ

Does rv have a website?

Yes! You're looking at it. You can reach this page with the URL rv.dev.

Why are you doing this?

@indirect, long-time project lead for Bundler and RubyGems, wrote a blog post about his motivation to create rv.

How do you pronounce rv?

"arr vee", the names of the two letters, spelled out.

Acknowledgements

rv is heavily inspired by uv, as you might guess from the name.

It also takes inspiration, features, and approaches from Bundler, Frum, Homebrew, npm, Cargo, and Orogene.

We'd also like to thank everyone who has ever worked on a package manager in the past for helping get all of us to where we are today.

Similar Projects

License

rv is licensed under either Apache-2.0 or MIT, at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion by you, as defined in the Apache-2.0 license, shall be dually licensed as above, without any additional terms or conditions.

About

💎💨 Extremely fast Ruby version and gem manager

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Contributors