「neofetchやfastfetchは好きだけど、外部クレートへの依存がゼロのやつが欲しい…」そんなニッチなこだわりを持つ開発者、実はいますよね😄
そんな要望にど真ん中で応えるツールが登場しました。その名もpurefetch。Rustの標準ライブラリ(std)とLinuxの生システムコールだけで作られた、依存グラフが完全に空のシステム情報フェッチャーです🦀
purefetchってどんなツール?

purefetchは、ターミナルにOSやCPU・メモリなどのシステム情報をかっこよく表示するツールです。neofetchやfastfetchと同じジャンルに属しますが、crates.io(Rustの外部パッケージ置き場)から何もダウンロードしないという点が最大の特徴。
イメージとしては、「冷蔵庫にあるものだけで料理を作る」みたいな感じです🍳 外から食材(ライブラリ)を買ってこなくても、Rustの標準機能だけでここまでできる、という挑戦ですね。
情報の取得には、Linuxカーネルへの生syscall(システムコール)を直接使っています。これはOSに「今のCPU使用率教えて」「メモリどのくらい残ってる?」と直接聞きに行くイメージです。
ゼロ依存で何を取得できるの?
purefetchが取得・表示できるシステム情報の例はこんな感じです:
- 🖥️ OS名・バージョン
- 🧠 CPUの名前・コア数
- 💾 メモリ使用量
- ⏱️ システムの稼働時間(Uptime)
- 🐚 使用中のシェル
fastfetchと同じような情報を、外部依存なしでサクッと表示できるのはかなり面白いですよね。
実際のコードのイメージ(Rustのsyscall例)
purefetchの仕組みを理解するために、Rustで生syscallを呼ぶ簡単なイメージをご紹介します。
// Rustの標準機能だけでファイルを読んでシステム情報を取得するイメージ
use std::fs;
fn get_os_info() -> String {
// /etc/os-release を直接読み込んでOS情報を取得
let content = fs::read_to_string("/etc/os-release")
.unwrap_or_else(|_| String::from("Unknown OS"));
// PRETTY_NAME の行だけ抽出
for line in content.lines() {
if line.starts_with("PRETTY_NAME=") {
// 余分なクォートを除去して返す
return line
.trim_start_matches("PRETTY_NAME=")
.trim_matches('"')
.to_string();
}
}
String::from("Unknown")
}
fn main() {
println!("OS: {}", get_os_info());
}
ポイントをまとめるとこんな感じです:
use std::fsだけで外部クレートは一切なし- Linuxの
/procや/etc以下のファイルを読むだけでかなりの情報が取れる - 生syscallを使えばさらに低レベルな情報にもアクセスできる
「AI支援で作った」という正直な開示が好印象
作者はREADMEの中で、このツールはClaude Codeを使ってAI支援で作られたと明記しています。設計の方針は自分で決め、コードの変更はすべて自分でレビューしたとのこと。
「AIで作ったから品質が低い」ではなく、「AI支援を透明に開示したうえで、しっかり自分の意図を乗せた」という姿勢は、オープンソースコミュニティでも好意的に受け取られていますよね。これからのOSS開発のひとつのスタンダードになっていきそうです。
まとめ
purefetchは、Rustの標準ライブラリだけで動く依存ゼロのシステム情報フェッチャーです。「なぜ依存を減らすの?」という問いへの答えは、セキュリティリスクの低減・ビルドの高速化・メンテナンスコストの削減など、実は実用的な理由がたくさんあります。
Rustを学んでいる方には「stdだけでここまでできる」という生きた教材にもなるので、ぜひGitHubで中身を覗いてみてください🔍 「むずかしそう」が「できそう」に変わるかもしれませんよ!





