Rust WebAssembly wasm-bindgen Canvas 2D SDL2
Pyxel にインスパイアされた Rust 製 2D ゲームライブラリ。
wasm-bindgen を使ってブラウザ上でも動作します(Emscripten 不使用)。
用途に応じて3つのバックエンドを切り替えられます:
| バックエンド | 対象 | 使用ライブラリ | feature フラグ |
|---|---|---|---|
| pyxel-core-backend | デスクトップ(デフォルト) | pyxel-core (SDL2) | pyxel-core-backend |
| wgpu-backend | デスクトップ(代替) | pixels + winit | wgpu-backend |
| wasm-backend | ブラウザ | wasm-bindgen + web-sys (Canvas 2D) | wasm-backend |
※ ブラウザ版は wasm32-unknown-unknown ターゲットで wasm-pack を使ってビルドします。Emscripten は使用していません。
wasm-bindgen / wasm-pack でブラウザ向けにビルドweb-sys 経由で Canvas 2D API を使用init / run / cls / blt / text など主要 API を実装pyxel_rust_cli.py(Python 製)で Rust ゲームのビルド・実行を管理
ローカル i9 マシンで動作する動画配信サーバーです。
動画を AES-256-CTR で暗号化・fMP4セグメント分割し、WebSocket でブラウザへ配信します。
ブラウザ側では WASM で復号しながら MSE(Media Source Extensions) で早期再生(全受信待ち不要)します。
| 項目 | 内容 |
|---|---|
| サーバー | Node.js + Express + WebSocket(ws パッケージ) |
| 暗号化 | AES-256-CTR(チャンクごと独立) |
| 動画形式 | fMP4(FFmpeg 変換) |
| 配信 | WebSocket バイナリストリーミング |
| 再生 | WASM 復号 → MSE appendBuffer(2チャンク目で再生開始) |
| 起動 | pm2 start video-server/server.js --name video-server |
| ポート | 3700(LAN 内 http://i9:3700/) |
アリサクエストの地図マーカーから window.open で動画プレイヤーを起動し、
GPS 撮影地点と動画を紐づけて再生します。
バージョン: 0.1.0
言語: Rust(エンジンコア)/ Python(CLI ツール)
レンダリング: pyxel-core/SDL2(デスクトップ)/ Canvas 2D・web-sys(WASM)
WASM ビルド: wasm-pack + wasm-bindgen(wasm32-unknown-unknown)
API 参考: Pyxel
ライセンス: MIT