対象読者
- モダンなpythonプロジェクト管理ツールを検討している人
- Ryeとuvをなんとなく知っている人
書かないこと
- Ryeやuvの導入方法・使い方
Rye vs uv
先日書いた記事でpythonのプロジェクト管理ツールとその中でもモダンなRyeとuvの導入と基本的な使い方について書きました。その時点で、私自身「Ryeとuvはどう違って、どっちが良いんだ?」と疑問を感じたまま書いていました。
そこでuvとRyeの関係性やどっちを使うべきかを調べてみました。
そもそも現在は同じ会社が管理している
Ryeとuvは現在、Astralという企業が開発主体になっています。Astral社はFastAPIなどでよく使われるuvicornなどの開発も行っている会社だそうです。
また現在幅広く使用されているPython用フォーマッターであるRuffの開発も行っています。
元々、Ryeは別の開発者がやっていましたが、非常に興味深いアプローチだったのでAstral社がその開発を引き継いだそうです。
uvはこれとは別の文脈で、高速な仮想環境構築を目指してRustで開発されているそうです。uvはpipやpip-toolsの代替として設計されています。
"Ryeはさまざまなツールを寄せ集めたため、かなり脆弱で最終的なソリューションにはなりそうにありません。"(意訳)
という状態なので、現状ではRyeが正式なツールとしてはリリースされる予定はないようです。
しかしRyeが無意味であるということではなく、"Ryeとuvが統合したツールが一番"(意訳)と考えられているようなので、何かしらの形で統合されていくのだと思います。
結局どうするべきか
Ryeの公式ページを真面目に見返したら、こんな注意書きがありました。
If you're getting started with Rye, consider uv, the successor project from the same maintainers.
While Rye is actively maintained, uv offers a more stable and feature-complete experience, and is the recommended choice for new projects.
日本語訳
Ryeを使い始めるのであれば、同じメンテナによる後継プロジェクトであるuvを検討してみてください。 Ryeは活発にメンテナンスされていますが、uvはより安定した完全な機能を提供しており、新規プロジェクトにはお勧めの選択肢です。(翻訳:DeepL.com)
Ryeを使い始めた途端に、uvに移行することになりました。
Ryeの公式ページは見ていましたが、home画面ではなくUser GuideのIntroductionからしか見ていなかったので、大切なページを見逃していました。
ちなみに、イントロダクションのページにも実験的なツールだとの記載はありました。
Rye is still a very experimental tool, but this guide is here to help you get started.
日本語訳
「Ryeはまだ非常に実験的なツールだが、このガイドを読めば始めることができる。」
しかし、これから正式版になるのかなと買っていに持っていましたが、すでにuvが推奨されていました。
致命的な見逃しでした。
ということで、Rye vs uv は、基本的にuvを使いましょう。
参照資料
https://rye.astral.sh/
https://docs.astral.sh/uv/#highlights
https://lucumr.pocoo.org/2024/2/15/rye-grows-with-uv/
https://astral.sh/blog/uv