概要
- Bundler開発者 が長年望んでいた 理想的なRuby依存関係管理ツール の構想
- Pythonのuv がその理想を実現していることを発見し、影響を受ける
- Rust製の新ツール「rv」 をRuby向けに開発開始
- Rubyバージョンとgemの 同時管理・高速化・分離実行環境 を実現
- rvの初期バージョンが公開済み、今後の発展にも期待
Bundler開発者の新たな願いとPython「uv」との出会い
- Bundler開発者 が長年抱いてきた「より良い依存関係管理ツール」への願い
- Rubyバージョン管理とgem管理の 一元化ニーズ
- Rubyのビルド不要、プリコンパイル済みRubyの導入による高速化
- 任意のRubyスクリプトやCLIツールが 即時・分離された環境 で実行可能な理想
- こうした機能を実現した Pythonの「uv」 の存在を知り、感銘を受ける
Python「uv」の革新と利用体験
- uv はpipやpoetryの代替として誕生
- 既存のPython依存関係管理ツールの機能を 包括的に統合
- 速度・信頼性・利便性 が非常に高い体験を提供
- 依存関係の衝突や手動設定によるトラブルの 根本的解消
- 約1年間uvを利用 し、その優秀さを実感
Ruby向け「rv」の開発決意と主要機能
- Ruby版uvが存在しないため、 自ら開発を決意
- cargo、npm、uv の革新を取り入れた新ツール「rv」の構想
- Rust製 による圧倒的な高速処理
- rvm installやbundle installに相当する処理を 透過的・高速に自動実行
- rvx/rv tool run によるCLIコマンドの即時実行・依存関係自動解決
- 分離環境 でのツール実行により、Rubyやgemのバージョン衝突を回避
- rv tool install で任意のgemをCLIツール化し、独立した環境でどこでも利用可能
- スクリプトサポート :.ruby-version、Gemfile、Gemfile.lockの情報をスクリプト1ファイルに集約し、rv run script.rbで即時実行
rvがもたらす新しいRuby開発体験
- Rubyバージョン管理とgem管理の 完全統合ツール
- CLIツール、Webアプリ、スクリプト問わず 一貫した環境構築と実行
- rvm、rubygems、bundler など複数ツールの手動セットアップが不要
- ただコマンドを実行するだけで 全て自動で環境構築・依存解決
- 「Language Manager」 という新カテゴリを提唱
開発体制・現状・今後
- Samuel Giddins (RubyGemsチーム)、 Sam Stephenson (rbenv創始者)がチーム参加
- zsh上でRubyバージョン自動切替、macOS/UbuntuでRuby 3.4.xの 1秒インストール に成功
- rvリポジトリ で初期バージョンを公開中
- 今後の計画や詳細についても 随時情報発信予定
- 企業向け導入サポート も視野に入れた展開
まとめと呼びかけ
- Ruby開発体験を大きく変える新ツール「rv」 の登場
- 従来のバージョン管理・依存管理の煩雑さを一掃
- 新カテゴリ「Language Manager」 への意見も募集中
- 興味がある方は rvリポジトリ や今後の情報をチェック推奨
- 開発者・企業からのフィードバックや協力も歓迎