検討可
Rust + egui + FFmpeg
単一バイナリ配布が必要な場合の選択肢
このアプローチを選ぶべき場合
単一の実行ファイル(.exe)として配布したい場合に検討してください。 ユーザーにPythonをインストールさせたくない場合に有効です。
メリット
- ・ 単一バイナリで配布可能
- ・ 依存関係なし(FFmpeg以外)
- ・ 高パフォーマンス
- ・ Windows/Linux/macOS対応
- ・ NEW: コンパイラ = 自動レビュー
デメリット
- ・ Claude Code処理がPythonより遅い(85.4% vs 92.3%)
- ・ コード量が多くなりがち
- ・ Rustコンパイル時間が長い(初回2-5分)
- ・ Rust学習コスト
2025年の新しい見解
Anthropic社の研究者は「Rustは大規模タスクでAIを監視なしで動作させるのに適している」と述べています。 Rustのコンパイラが自動的にエラーを検出するため、AIが生成したコードの品質保証が自動化されます。
Pythonでは「見た目は正しいが本番で失敗する」コードをAIが生成するリスクがありますが、 Rustでは「コンパイルが通れば大抵動く」という安心感があります。
eguiとは
egui(イーグイ)は、Rust用の即時モードGUIライブラリです。 DearPyGuiと同じく、シンプルなAPIで高速なUIを構築できます。
即時モードGUI
毎フレームUIを再描画する方式。状態管理がシンプル。
クロスプラットフォーム
Windows, Linux, macOS, Webに対応。
Pure Rust
C/C++依存なし。Rustのみで動作。
参考プロジェクト
ffmpeg_gui
egui + RustでFFmpeg GUIを実装した例。学習用に最適。
door_player
egui + FFmpegで動画プレーヤーを実装。動画表示の参考に。
最小構成の例
// Cargo.toml
[dependencies]
eframe = "0.24"
egui = "0.24"
// main.rs
use eframe::egui;
use std::process::Command;
fn main() {
let options = eframe::NativeOptions::default();
eframe::run_native(
"Video Editor",
options,
Box::new(|_cc| Box::new(MyApp::default())),
);
}
struct MyApp {
input: String,
output: String,
start: f32,
end: f32,
}
impl Default for MyApp {
fn default() -> Self {
Self {
input: "input.mp4".to_string(),
output: "output.mp4".to_string(),
start: 0.0,
end: 10.0,
}
}
}
impl eframe::App for MyApp {
fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
egui::CentralPanel::default().show(ctx, |ui| {
ui.heading("Video Editor");
ui.text_edit_singleline(&mut self.input);
ui.add(egui::Slider::new(&mut self.start, 0.0..=100.0).text("Start"));
ui.add(egui::Slider::new(&mut self.end, 0.0..=100.0).text("End"));
if ui.button("Cut").clicked() {
Command::new("ffmpeg")
.args(["-i", &self.input, "-ss", &self.start.to_string(),
"-to", &self.end.to_string(), "-c", "copy", &self.output])
.spawn()
.expect("FFmpeg failed");
}
});
}
}Claude Codeでの開発上の注意
コンパイル時間を考慮
Rustは初回ビルドに2-5分かかる。増分ビルドでも30秒-2分。 小さな変更を試すサイクルが遅くなる。
ファイルを分割
main.rsが大きくなりすぎないよう、モジュールに分割。 Claude Codeは小さなファイルの方が処理しやすい。
Pythonより遅くなる覚悟
Claude Codeの処理速度はPythonの半分程度になる可能性がある。 本当に単一バイナリが必要か再検討を。