このサイトをRust+WASMでリビルドした
今あなたが見ているこのサイト(yukihamada.jp)は、つい先日までAxum + Askamaで動いていた。普通のRust Webサーバーだ。それを今回、Fermyon Spin — つまりRustからコンパイルしたWebAssemblyバイナリで動かすように全面リビルドした。
なぜか?
理由はシンプルで、EnablerDAOの「Dog Pack」と同じアーキテクチャに統一したかったからだ。1つのWASMバイナリ、1つの設定ファイル、Fly.ioにデプロイ。起動は0.5ms以下。メモリは256MBのVMで余裕で動く。
技術的な構成はこうなっている:
- Spin SDK 3 —
#[http_component]マクロで全ルートを処理 - pulldown-cmark — Markdownブログ記事をHTMLに変換
- include_str!() — 記事はバイナリに埋め込み。デプロイ時に全記事が確定
- CSS/JSは全部インライン — 外部依存ゼロ。Google Fontsだけ外部読み込み
- Fly.io (nrt) — 東京リージョン、bookworm-slim + Spin CLI
従来のAxum版との違いは、非同期ランタイムが不要なこと。SpinがWASMコンポーネントモデルの中でHTTPリクエスト/レスポンスを管理してくれるので、tokioもtowerも要らない。依存クレートが劇的に減り、ビルドも速い。
EnablerDAOでやってきたこと
EnablerDAOは、僕が2024年から取り組んでいるプロジェクト群の総称だ。12以上のプロダクトを同時に走らせている:
- chatweb.ai — マルチモデルAIチャット。Nemotron、Qwen3、Geminiを束ねてLambda上で動かす
- elio.love — 世界初のMCP対応iOSアプリ。P2P分散推論にも対応
- jiuflow.art — 柔術インストラクショナルプラットフォーム
- stayflowapp.com — 民泊管理SaaS。500+施設が利用中
- ミセバンAI — 店舗AIカメラ分析
- BANTO — ビジネスアシスタント
- rustydog — そして、30匹のAI犬
これらすべてを少人数(というかほぼ僕一人+AI)で開発・運用している。Claude Code、OpenClaw、そして自前のエージェントを駆使して。
30匹のAI犬が走り回っている
rustydog Dog Packは、EnablerDAOの中でも最も実験的なプロジェクトだ。
1つのRust WASMバイナリ(rustdog_spin.wasm)から、30匹の犬がそれぞれ異なる個性と専門性を持って動いている。Bossdog、Motherdog、Guarddog、Debugdog、Aidog...。それぞれが異なるLLMモデルを使い、異なる口調で話し、異なる専門領域を持つ。
仕組みはこうだ:
- ランタイム変数による差別化 —
spin.tomlの変数(名前、絵文字、性格、使用モデル)だけを変えて同じバイナリをデプロイ - Spin KVストアで記憶 — セッション履歴、学習内容、進化ログをキーバリューに保存
- 掲示板での会話 — 犬同士がboard(掲示板)に投稿し合い、お互いの情報を交換
- 自己進化 —
<code>タグでGitHub APIを叩いて自分のソースコードを書き換える - ハートビート — 10分ごとに自律的に掲示板に投稿、日報を書く
Fly.ioに11匹、Hetzner VPS 5台に19匹。合計30匹が24時間365日、EnablerDAOのプロダクトについて議論し、コードを書き、ブログを書き、お互いから学んでいる。
エージェントの未来
ここ1年で確信したことがある。ソフトウェア開発の主体は、人間からエージェントに移行する。
今の僕の開発フローはこうだ:
- 方向性を決める(「yukihamada.jpをSpin WASMにリビルドしよう」)
- Claude Codeに指示を出す
- AIが設計 → 実装 → テスト → デプロイ
- 僕がレビューして微調整
「5つのプロンプトで6プロダクトを回した」日もあった。人間の仕事は「何を作るか」の判断だけ。コードを書くのはエージェント。テストを書くのもエージェント。ブログを書くのも(半分は)エージェント。
WASMサンドボックスが重要なのは、エージェントに安全な自律性を与えるからだ。WASMコンポーネントは:
- ファイルシステムにアクセスできない
- ネットワークはホワイトリスト制
- メモリは隔離されている
- CPUはfuel制限で暴走しない
つまり、エージェントが「自分のコードを書き換える」ことを許可しても、ホストシステムを壊す心配がない。Dog Packの自己進化は、この安全な箱の中で行われている。
これが僕の見ている未来だ:
- エージェントがコードを書く — 人間はプロンプトを書く
- エージェントがレビューする — 犬同士がお互いのコードを評価する
- エージェントが会話する — 掲示板やDMで知識を共有する
- エージェントがデプロイする — CIパイプラインを自律的に回す
- エージェントが自己進化する — 昨日より今日の方が賢い
人間は方向を示す。エージェントが実行する。そしてその実行環境として、WASMサンドボックス×分散デプロイが最適解だと思っている。
Rust + WASM + エージェント。この組み合わせで、一人のエンジニアが12プロダクトを回せる時代が来ている。いや、もう来た。
このサイトのソースコードは GitHub で公開しています。