フロントエンドカンファレンス北海道2025
LT(5分)

Rust 製 NES をブラウザで動かす: 3環境同時駆動の設計術

uzimaru0000 uzimaru uzimaru0000
1

Rust 製 NES エミュレータを 1 コードベースのまま

  • wasm(ブラウザ)
  • SDL2(デスクトップ)
  • CLI(ターミナル)
    の 3 環境で動作させる設計方針を 5 分で紹介します。

今回の発表では主に以下の内容を詳しく話します。

  • 純 Rust コアと UI 境界を trait で分離するアーキテクチャ
  • ブラウザ向けに wasm-bindgen でバインディングを生成する手順
  • Canvas+WebAudio を用いたフレーム/音声レンダリング
  • ts-bindgen 等を使った Rust 型 → TypeScript 型自動生成ワークフロー