Skip to content

wasmCloud

同じホストをローカルでも Kubernetes でも動かし、コンポーネントを差し替え可能な capability プラグインに結線する WebAssembly コンポーネントランタイム。

  • カテゴリ: Runtime
  • CNCF 成熟度: Incubating
  • 言語: Rust (Go 製の Kubernetes operator と gateway を併設)
  • ライセンス: Apache-2.0
  • リポジトリ: wasmCloud/wasmCloud
  • ドキュメント基準コミット: 0c6315b (2026-06-24、タグ v2.4.0 付近)

何をするものか

wasmCloud は WASI 0.2 / 0.3 コンポーネントモデルでビルドされた WebAssembly コンポーネントを動かす。コンポーネントは必要な capability を WIT インターフェース (標準 capability は wasi:*、プロジェクト固有は wasmcloud:*) で宣言し、ホストがそれをインスタンス化時にプラグインとして供給する。コンポーネント本体はベンダー SDK やトランスポートの詳細を持たない。

基準コミットでは、リポジトリは wash (The Wasm Shell) を中心に構成される。wash はスキャフォールド・ビルド・inspect・実行を担う単一の CLI だ。README の冒頭も # wash - The Wasm Shell (README.md:1) で始まる。Cargo workspace のメンバーは 3 つ: wash CLI、wash-runtime 組み込みランタイム、ベンチマーク用クレート。Go 製の Kubernetes operator と HTTP gateway が runtime-operator/runtime-gateway/ に併設されている。

v2 設計の要点は、1 つのランタイムが 2 つのフロントエンドを支えること。ローカルでは wash dev がホットリロード付きでランタイムを駆動する。本番では Kubernetes operator が同じランタイムを gRPC で駆動する。エントリポイントより下のコードは同一だ。

いつ使うか

  • ビジネスロジックを polyglot な WebAssembly コンポーネントとして書き、capability (HTTP・key-value・blob・messaging・config) は SDK リンクではなくプラットフォームに注入させたいとき。
  • 同じコンポーネントを開発時はラップトップ、本番は Kubernetes で、ホスト結線を書き直さずに動かしたいとき。
  • 外向き通信のゼロトラストな既定が欲しいとき。egress は allowlist を設定しない限り拒否される (crates/wash-runtime/src/types.rs:92)。
  • 成熟した実績のあるコントロールプレーンが今すぐ必要なら不向き。v2 ランタイムは最近のリライトであり (歴史 参照)、公開された採用事例の多くは PoC 段階だ。
  • 汎用のコンテナランタイムではない。動かすのは Wasm コンポーネントであって OCI コンテナイメージではない。

このディープダイブの構成

出典

  1. wasmCloud/wasmCloud (GitHub)
  2. wash - The Wasm Shell (README)
  3. CNCF welcomes wasmCloud to the CNCF Incubator
  4. wasmCloud (CNCF projects)
  5. wasmCloud 1.0 Brings the WebAssembly Component Model to Enterprise (Cosmonic)
  6. Cosmonic Componentizes wasmCloud Ecosystem
  7. wasmCloud Operator: Open Source Wasm on K8s (Cosmonic)
  8. WebAssembly Adoption Grows across Telco, Manufacturing, Tech
  9. First look: wasmCloud and Cosmonic (InfoWorld)
  10. Actors in the Cloud with wasmCloud (b-nova)