Skip to content
Latchkey

asdf vs mise: ポリグロットなバージョンマネージャー

asdfは多くの言語ランタイム向けの、確立されたプラグインベースのマネージャーです。miseは、asdfと概ね互換性のある、より速いRustのリライトです。

asdfは、共有のプラグインシステムと.tool-versionsファイルを通じて、Node、Python、Rubyやその他数十のツールのバージョンを管理します。mise(旧rtx)はそのモデルを保ちつつRustで書かれており、目に見えて速く動作し、シェルごとのshimオーバーヘッドを回避し、環境管理とタスク実行を加えています。どちらも単一言語のマネージャーを1つのツールに置き換えます。miseはasdfの成熟度を速度と引き換えにします。

asdfmise
言語Shell + プラグインRust
速度遅め (shim)速い
設定.tool-versions.tool-versions / mise.toml
追加機能バージョン管理env + タスクも
最適な用途成熟したプラグイン基盤速度、モダンな機能

CIでは

asdfのshimはコマンドごとにオーバーヘッドを加え、CIで積み重なります。miseはバージョンをより速く解決し、同じ.tool-versionsを読むため、移行の手間は少ないです。どちらもプロジェクトごとにランタイムをインストールするため、jobは正確に固定されたバージョンを使います。miseはタスク実行も同梱し、追加のツールを減らします。

高速化

ランタイムがウォームになるよう、.tool-versionsをキーにしてインストール済みツールのディレクトリをcacheしましょう。どちらもCI runner上で実行されます。より高速なマネージドrunnerはランタイムのインストールとセットアップのステップを短縮します。

結論

最も成熟したプラグインエコシステムと確立されたツールが欲しいなら: asdf。より速い解決、shimオーバーヘッドなし、組み込みのenvとタスク機能が欲しいなら: mise。miseはasdfの設定を読むため、既存のリポジトリで試すのは低リスクです。

関連ガイド