Rv, a new kind of Ruby management tool
Motivation & existing pain points
- Several commenters hit long‑standing Bundler/RubyGems issues: stdlib → gem extractions (e.g.,
StringIO) can cause “already activated” version conflicts and force frequent Bundler upgrades. - People like Ruby’s per‑project dependency isolation but dislike how that isolates global dev tools (rubocop, LSPs, etc.) inside project Bundler contexts.
- CI and provisioning: compiling Ruby is still slow in some setups; precompiled Rubies and faster installs are welcomed, especially where a clean environment is created on every run.
What rv aims to do vs. current Ruby tools
- rv is perceived as a “language manager”: combining Ruby version management, dependency management, and global tools (à la
uv+uvx), not just anrvm/rbenvreplacement. - Some see this as a clear step up from the split of rvm/rbenv + Bundler + ad‑hoc tooling; others argue Bundler already solves most pain and is “fast enough,” so benefits feel marginal.
- Concern: does rv reimplement Bundler’s resolver and
Gemfile.lockformat, and if so, will it stay compatible with Bundler’s evolution?
Single‑language vs multi‑language environment managers
- Many work across Ruby, Python, JS, Java, etc. and prefer one universal tool (asdf, mise, Nix + direnv, devbox, Flox) that manages all runtimes and tools.
- Counterpoint: language‑specific tools (cargo, uv, rv) can go deeper—handling versions, deps, scripts, formatting, docs, publishing—while generic tools usually only cover versions and PATH management.
- Some suggest rv should at least read
.tool-versionsto coexist with mise/asdf and possibly even act as mise’s Ruby backend in the future.
Rust as implementation choice
- Noted pattern: Rust increasingly powers ecosystem tooling (uv, rv, JS toolchain rewrites). Many see it as “the new C” for fast, safe CLIs.
- Dissenters argue ecosystem tools should be written in the ecosystem’s own language (Ruby), and that requiring Rust raises the bar for contributors.
Other concerns & wishlist
- Worries about Ruby tooling drifting toward Python‑style “VM hell,” though some think Ruby’s later, more informed move reduces that risk.
- Name complaints:
rvcollides with an existing R tool and is hard to search, part of a broader dislike of two‑letter project names. - Feature requests: better caching/sharing of environments, version range installs (
rv install "~> 3.4.4"), inline script support akin to Bundler’s, and clear advantages table vs rvm/rbenv/Bundler.