組み込み・IoT
ファームウェア、マイコン
推奨:Rust
推奨
Rust
- メモリ安全性とC並みの性能を両立できる(§2-9)
構成行を開くと詳細(乗り換える条件・根拠・費用・習熟度)
言語Rust
Rust
言語別の既定§2-5
既定:他言語から呼び出すライブラリ作成物ごとの言語の決め方
代替:バイナリ配布Rust
既定は cargo-dist。Goと配布の仕組みを揃えたいとき に乗り換える。
代替:CLIツール作成物ごとの言語の決め方
既定は Go。起動時間・バイナリサイズ・処理速度を詰めたい に乗り換える。
代替:エッジ関数作成物ごとの言語の決め方
既定は TypeScript(Cloudflare Workers)。CPU負荷の高い処理がある に乗り換える。
代替:機械学習の学習・推論作成物ごとの言語の決め方
既定は Python。小さなモデルを単一バイナリで配りたいとき に乗り換える。
採用の根拠§22-2
GCがなく、C/C++並みの性能とメモリ効率を出しながら、メモリ安全性をコンパイル時に保証できる。WebAssemblyやネイティブ拡張として他の環境に組み込みやすい。近年の高速な開発ツール(Biome、Ruff、uvなど)の多くがRust製で、実用性が証明されている
「開発が遅くなるのでは」→ 性能・安全性が効く箇所に限定して使い、その他はGo・TypeScriptで書く(§2-10)
習熟度
テストcargo-nextest
cargo-nextest
既定:テスト実行Rust
作り始める
共通の準備
# 言語・ツールのバージョン固定(使う言語だけ)
mise use node@lts pnpm@latest
mise use go@latest
mise use ruby@latest
mise use python@latest uv@latest
# Gitフックと依存更新
pnpm add -D lefthook && pnpm exec lefthook install
# renovate.json を置き、GitHubでRenovateアプリを有効化する