
justはbitcoinのOrdinalsで知られるCasey Rodarmor氏が2016年に公開した、Rust製のコマンドランナーである。Makefile風の構文を踏襲しつつ、タブと空白の混在問題や暗黙ルールを排除し、純粋に「名前付きレシピを実行する道具」に絞り込んだ点が特徴的だ。justfileという1ファイルにタスクを並べ、just buildのようにレシピ名で呼び出すシンプルさで、個人開発者から組織まで幅広く採用されている。
この記事の目次
- Makeから何を捨て、何を引き継いだか
- justfileの記法と特徴
- 言語選択と環境変数の柔軟さ
- Taskfile・mise tasksとの使い分け
- まとめ
Makeから何を捨て、何を引き継いだか

Casey Rodarmor氏は2016年頃、Rustプロジェクト管理で繰り返しMakefileのタブ問題に遭遇したことをきっかけにjustを書き始めた。Makeのレシピ呼び出しの軽さと変数展開の便利さは残しつつ、ビルド成果物の依存追跡という重い責務はBazelやTaskfileに譲り、justは「コマンド集合の整理整頓」に専念する設計を採った。これにより文法が極めて小さく保たれ、新規ユーザーの学習コストが低い。
正式版1.0は2022年4月にリリースされ、それまで実験的だった機能群が固まった。2024年時点でGitHubスター数は2万を超え、Rust界隈ではほぼ標準のタスクランナーになっている。同じ作者のagateやmempool.observer、Bitcoin関連のordなど、自身のプロジェクト群でも一貫してjustが採用されている点も特徴的だ。
justfileの記法と特徴

ファイル名はjustfileまたはJustfileで、レシピ定義はbuild:に続けて改行・インデントしてコマンドを並べる。Makeと違ってインデントはタブでも空白でもよく、混在しなければ動作する。引数付きレシピもdeploy env:のように書け、just deploy stagingで呼び出せる。デフォルト引数や型のような重い記法はなく、シェルの素朴さを保っている。
依存関係はbuild: lint testのようにヘッダの後ろに列挙でき、build実行前にlintとtestが走る。ただしファイル間の差分実行のようなビルドシステム的責務は持たず、毎回実行される。@プレフィクスでコマンドのエコーを抑制、-で失敗を許容、\で行継続といったMake互換の演算子も使え、Makefileからの移植が比較的容易である。
言語選択と環境変数の柔軟さ

justはレシピのデフォルトshellを変更でき、set shell := ["bash", "-uc"]のように記述するとbashで実行される。さらに#!/usr/bin/env python3のようなshebang行をレシピ先頭に置けばPythonやNode.jsスクリプトをそのまま埋め込める。Taskfileのようにyaml内に閉じる必要がなく、複雑な処理は別言語で書きやすい。
環境変数はexport NAME := valueで外部に公開でき、.envファイルの自動読み込みオプションもある。set dotenv-loadを指定すればjust実行時に.envの内容が反映され、開発者のローカル環境で異なる値を簡単に切り替えられる。direnvと組み合わせるとなお強力で、シェル起動時の環境設定とレシピ実行時の設定を分離できる。
Taskfile・mise tasksとの使い分け

justはMakefileに最も近い感覚で扱えるため、小〜中規模プロジェクトの「タスク集」として最適だ。YAMLでなく素のテキストでレシピを書きたい開発者にも好まれる。一方で大規模な依存ツリーや差分ビルド、include/extends的なモジュール化が必要になるとTaskfileの方が向いており、規模に応じた選択が現実的である。
mise tasksは環境変数とversion管理を同じ設定ファイルに集約できる利点があり、リポジトリの設定ファイル数を減らしたい場合に強い。justは独立した1ファイルで完結する点が逆に明快で、Rustプロジェクト・Bitcoin系プロジェクト・各種CLI開発で第一選択として定着している。シンプルさという尺度では現状最も研ぎ澄まされた選択肢である。
まとめ
justは2016年にCasey Rodarmor氏が公開したRust製コマンドランナーで、Makeの良いところを残してビルド責務を切り捨てる思い切った設計が支持を集めた。1ファイル完結のシンプルさは小〜中規模プロジェクトに最適で、Rust界隈を中心に標準的なタスクランナーとして広く採用されている。
※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

コメント