rv Is a New Rust-Powered Ruby Version Manager Inspired by Python's uv
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Sarah Gooding
September 5, 2025
The hype around uv is real and it's spilling over into other ecosystems. The Python world has been buzzing about uv for the past year, and for good reason. What started as a faster pip alternative has evolved into something much more ambitious: a unified tool that manages Python versions, dependencies, and even runs isolated scripts with their own environments. Now, that innovation is spreading to Ruby with rv, a new project from Spinel.coop, a collective of Ruby open source maintainers that includes André Arko (Bundler maintainer), Samuel Giddins (RubyGems team), and Sam Stephenson (original creator of rbenv).
For developers who haven’t been following Python tooling news, uv has been transformative. Written in Rust for blazing speed, it collapsed multiple tools (pip, poetry, pyenv, virtualenv) into a single coherent experience. The killer feature? Being able to run uvx some-tool and have it automatically download the right Python version, create an isolated environment, install dependencies, and run, all in the time it used to take just to activate a virtual environment.
The impact has been dramatic. Developers report 10-100x speedups in their workflows, and uv is eliminating entire categories of problems around version conflicts and environment management. Its rapid adoption in the Python ecosystem has other language communities taking notice.
Enter rv: More Than Just Another Ruby Version Manager#
At first glance, rv might look like just another Ruby version manager joining a crowded field (rvm, rbenv, chruby, ruby-install). But the ambition is bigger. Arko calls rv a “language manager:” not just versions, not just dependencies, but a single binary that ensures your environment is always right and fast. After maintaining Bundler for a decade, explains his motivation for building rv:
For the last ten years or so of working on Bundler, I've had a wish rattling around: I want a better dependency manager. It doesn't just manage your gems, it manages your ruby versions, too. It doesn't just manage your ruby versions, it installs pre-compiled rubies so you don't have to wait for ruby to compile from source every time. And more than all of that, it makes it completely trivial to run any script or tool written in ruby, even if that script or tool needs a different ruby than your application does.
The Spinel team bills rv as "the Ruby swiss army knife" with a wildly ambitious goal: replace rvm, rbenv, chruby, asdf, mise, ruby-build, ruby-install, bundler, and rubygems, all at once.
The vision is compelling: imagine running a Ruby script and having rv automatically:
Install the correct Ruby version (precompiled, in 0.22 seconds according to early testers)
Install all gem dependencies
Manage isolated environments for CLI tools
Handle version conflicts transparently
No more juggling rvm install && gem install bundler && bundle install just to run a project.
For developers evaluating whether to get excited about rv, here are the key technical innovations:
Speed through Rust: Like uv, rv is written in Rust. Current benchmarks show rv can install precompiled Ruby 3.4.x on macOS and Ubuntu in under a quarter of a second. The team expects to "silently run equivalents of both rvm install and bundle install at the beginning of every bundle exec, with everything still feeling faster than it ever has before."
Tool isolation with rvx/rv tool: This is the feature that has Python developers excited about uv. Want to use the gist gem while working on an app that needs a different Ruby version? Just rv tool install gist and you have a globally available gist command with its own isolated Ruby and gems. Or run any gem command instantly with rvx rails new. No more gem conflicts between your development tools and your application dependencies.
Script metadata support: Taking inspiration from Python's PEP 723, rv will support single-file scripts that embed their Ruby version and dependency requirements directly in the file. Just rv run script.rb and everything works.
Precompiled binaries: No more waiting for Ruby to compile from source. The rv team is shipping precompiled Ruby builds that install in under a second.
Not everyone in the Ruby community is convinced this is necessary. As several Hacker News commenters pointed out, Ruby already has Bundler, which handles dependency management better than anything Python had before uv. Ruby doesn't have Python's virtual environment complexity. Bundler already keeps gem versions isolated per project.
Some developers argue that the Ruby ecosystem's existing tools work well enough. Installing Ruby is typically a once or twice a year operation, and Bundler's speed is rarely a pain point. As one commenter noted, "Python's virtual env always seemed to me like a weirdly complicated workaround for the limitations of the Python package managers. Ruby/Bundler doesn't have any of these problems."
There's also the polyglot consideration. Many developers work across multiple languages and prefer unified tools like mise (formerly rtx) or asdf that can manage Ruby, Python, Node, and other runtimes from one place. For these developers, a Ruby-specific tool might not align with their workflow.
rv is still in early development but already functional for basic use cases. The team has:
Basic version switching working in zsh, bash, and fish
Precompiled Ruby 3.4.x installations working on macOS 14+ and Ubuntu 24.04+
Installation available through Homebrew
The roadmap includes:
Full Bundler replacement with rv install, rv add, and rv remove
Windows support
Expanded precompiled Ruby version coverage
Gem creation and publishing with rv gem and rv publish
The full rv tool and rvx experience
The project is open source and being developed by Spinel.coop, which offers commercial support and access to the maintainers who come from the core teams of Rails, Hotwire, Bundler, and RubyGems.
The success of uv and the emergence of rv are evidence that developer experience matters, and there's still room for radical improvements in our fundamental tooling. Whether rv becomes the future of Ruby development or remains a niche tool will depend on execution and community adoption. But the mere fact that experienced Ruby tooling maintainers and members of the Rails core team are looking at uv and saying "we need this" is significant.
For Ruby developers, it's worth keeping an eye on rv's progress. uv has already proven that developers crave simplification and speed. rv is part of the same trend: collapsing fragmented tooling into unified, Rust-powered binaries that make developer experience dramatically smoother.
Subscribe to our newsletter
Get notified when we publish new security blog posts!
Try it now
Ready to block malicious and vulnerable dependencies?