組み込み機器におけるウェブAPI
組み込み Rust の場合はハードウェアリソースの制約から、大量の画像や映像コンテンツを配信するケースは少ないです。Cortex-M シリーズや RISC-V などの汎用的なマイクロコントローラーでサポートされているメモリ量は、RAM: 128KiB 〜 512KiB 程度、フラッシュ: 512KiB 〜 4MiB 程度です。
外付けのRAMを用意することで32MiB程度に拡張することもありますが基板のサイズアップやコストアップにつながるため、あまり好まれません。
ウェブAPIによるデータ提供
Section titled “ウェブAPIによるデータ提供”そこでよく使われる技法が、HTTP 経由の GET/POST アクセスに対して、JSON 形式などのテキストデータを返却するAPIを用意するパターンです。
sequenceDiagram
participant FE as フロントエンド
participant EMB as 組み込み機器
FE->>EMB: GET /status
EMB-->>FE: {"temperature": 25.5, "humidity": 45}
FE->>EMB: POST /setting
EMB-->>FE: {"status": "success"}
FE->>FE: 描画更新
フロントエンド側(ブラウザーアプリやPCソフトウェア)は必要なデータのみを組み込み機器から受信し、JavaScriptやTypeScript(React, Svelte, Astroなど含む)でUIを構築したり、データ処理を行ったりします。 ハードウェアリソースに制限があるマイコンと柔軟な実装が可能なブラウザーアプリの役割分担を行うことで、開発の効率化やメンテナンス性を向上させることができます。
用途別の技術スタック選択
Section titled “用途別の技術スタック選択”高い計算負荷を伴う処理
Section titled “高い計算負荷を伴う処理”計算負荷の高い処理については Rust で実装した WASM(WebAssembly) をウェブフロントエンド側で実行するパターンもあります。科学計算や座標計算などが必要な場合は検討の価値があるでしょう。
GUI フレームワーク
Section titled “GUI フレームワーク”2026年時点では tauri, dioxis, egui, leptos などの rust で実装されたフレームワークが存在しますが、現時点では React などのメインストリームのウェブフレームワークと比較すると完成度の面で大きく劣ります。
また,Windows での使用を考慮すると Electron など汎用フレームワークも視野に入ってきますが、メモリ消費量やバイナリーサイズ肥大化(起動速度が遅い)などの欠点もあり、用途に応じて選択する必要があります。