Ruby開発者なら誰もが一度は「バージョン管理と依存関係」の沼にはまったことがあるかもしれません。rvm、rbenv、bundler…などさまざまなツールが存在し、最適な組み合わせを考えるのはかなり複雑な作業となります。そんな悩みに終止符を打つべく、新しいRuby管理ツール「rv」が登場しました
開発者のAndré Arko氏は、Pythonの「uv」に感銘を受け、「Rubyにも欲しい!」と自ら開発を開始します。目指すのは、rvm + bundler + gem exec + npx のいいとこ取りで、RubyGemsのSamuel Giddins氏や、rbenvの創設者Sam Stephenson氏もチームに参加し、開発は加速中です。
rvの主な特徴は次の通りです:
-
Rubyのバージョン管理とgem依存管理を統合
複数ツールを使い分けなくてOK -
Rust製で爆速
rvm install
やbundle install
相当の処理をより高速に実行。 -
CLIツールの即時実行(
rvx
)
npx
のように、依存関係を気にせずコマンドを実行可能。 -
ツールごとの分離環境
プロジェクトと無関係なgemも安全に扱える。 -
スクリプト単体で環境構築&実行
.ruby-version
やGemfile
情報を含む.rb
ファイルをrv run
で即実行できる。
これまでのRubyツールと違いは次のようになります。
機能 | 従来ツール | rvのアプローチ |
---|---|---|
Rubyバージョン管理 | rvm / rbenv | Rust製で高速動作。コンパイル済みのRubyを爆速インストールも可能。 |
gem依存管理 | bundler | 分離環境で衝突なし |
CLIツール実行 | gem exec |
rvx で即時実行&依存解決 |
スクリプト実行 | ruby + bundler |
rv run で環境込みで実行 |
まとめ
Python界隈で話題の「uv」を横目に、「Rubyにもこんな統合ツールがあれば」と願っていた方にとって、rvはまさに待望のツールとなりそうです。rvmやrbenv、bundlerを駆使していた日々から一歩踏み出し、「言語マネージャー」という新しい概念が登場したことで、Ruby開発の体験そのものが変わるかもしれません。