[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"news:sw-wasi-03-stable-async-components-2026-06-16":3},{"meta":4,"markdown":60},{"type":5,"articleId":6,"slug":7,"title":8,"titleEn":9,"category":10,"summary":11,"publishedAt":12,"image":13,"vocabulary":14,"source":58},"news","news-sw-wasi-03-stable-async-components-2026-06-16","sw-wasi-03-stable-async-components-2026-06-16","WASI 0.3が安定版に、WebAssemblyコンポーネントの非同期処理が共通基盤へ","WASI 0.3 Reaches Stable Release, Giving WebAssembly Components a Shared Async Foundation","tech-software","Bytecode Alliance announced the stable launch of WASI 0.3, the latest WebAssembly System Interface release, after Publickey highlighted the update on June 15, 2026. The biggest change is native async support in the component model, which lets hosts manage one shared event loop instead of forcing each component to bring its own. For developers building multi-language Wasm systems, that changes composition from a custom runtime trick into a standard interface capability.\n","2026-06-16T00:00:00Z","https:\u002F\u002Fimages.yamiyomi.com\u002Fnews\u002Fsw-wasi-03-stable-async-components-2026-06-16.png",[15,20,25,29,33,37,41,45,49,54],{"word":16,"reading":17,"meaning":18,"level":19},"安定版","あんていばん","stable release","N2",{"word":21,"reading":22,"meaning":23,"level":24},"非同期","ひどうき","asynchronous","N1",{"word":26,"reading":27,"meaning":28,"level":24},"共通基盤","きょうつうきばん","shared foundation",{"word":30,"reading":31,"meaning":32,"level":24},"実行環境","じっこうかんきょう","runtime environment",{"word":34,"reading":35,"meaning":36,"level":19},"仕様","しよう","specification",{"word":38,"reading":39,"meaning":40,"level":24},"互換性","ごかんせい","compatibility",{"word":42,"reading":43,"meaning":44,"level":24},"構成要素","こうせいようそ","component element",{"word":46,"reading":47,"meaning":48,"level":24},"事象待機","じしょうたいき","event waiting",{"word":50,"reading":51,"meaning":52,"level":53},"接続","せつぞく","connection","N3",{"word":55,"reading":56,"meaning":57,"level":19},"実装","じっそう","implementation",{"url":59},"https:\u002F\u002Fbytecodealliance.org\u002Farticles\u002FWASI-0.3","\n::heading\nWASI 0.3が[安定版]{あんていばん:stable release:N2}に、WebAssemblyコンポーネントの[非同期処理]{ひどうきしょり:asynchronous processing:N3}が[共通基盤]{きょうつうきばん:shared foundation:N1}へ\n\n#en\nWASI 0.3 Reaches Stable Release, Giving WebAssembly Components a Shared Async Foundation\n::\n\n::para\nBytecode Allianceは[6月]{ろくがつ:June:N5}[中旬]{ちゅうじゅん:middle of the month:N1}、WebAssembly System Interfaceの[最新仕様]{さいしんしよう:latest specification:N3}であるWASI 0.3の[安定版公開]{あんていばんこうかい:stable release launch:N2}を[発表]{はっぴょう:announce:N3}した。Publickeyも[6月15日]{ろくがつじゅうごにち:June 15:N5}にこの[更新]{こうしん:update:N3}を[取り上げ]{とりあげ:covered:N3}、WebAssemblyコンポーネントの[非同期処理]{ひどうきしょり:asynchronous processing:N3}が[共通化]{きょうつうか:standardized into a shared base:N3}された[点]{てん:point:N3}を[大きな]{おおきな:major:N5} [変更点]{へんこうてん:change:N3}として[伝えた]{つたえた:reported:N3}。\n\n#en\nBytecode Alliance announced the stable release of WASI 0.3, the latest WebAssembly System Interface specification, in mid-June. Publickey also covered the update on June 15 and highlighted shared async handling for WebAssembly components as the main change.\n::\n\n::para\n[公式記事]{こうしききじ:official article:N3}によると、WASI 0.3はWASI Subgroupの[投票]{とうひょう:vote:N1}を[通過]{つうか:pass:N3}した[安定版]{あんていばん:stable release:N2}で、いま[コンパイル]{コンパイル:compile}したプログラムは[将来]{しょうらい:future:N2}も[動作継続]{どうさけいぞく:continue to work:N1}するよう[保証]{ほしょう:guarantee:N1}されると[説明]{せつめい:explain:N3}されている。[破壊的変更]{はかいてきへんこう:breaking change:N1}を[頻繁]{ひんぱん:frequently:N1}に[受ける]{うける:receive:N3} [実験段階]{じっけんだんかい:experimental stage:N2}から、[長く]{ながく:for a long time:N5} [使える]{つかえる:usable:N4} [仕様]{しよう:specification:N3}へ[移った]{うつった:moved:N2}ことになる。\n\n#en\nAccording to the official announcement, WASI 0.3 passed a WASI Subgroup vote as a stable release, and programs compiled for it now are guaranteed to keep working in the future. That shifts it from an experimental stage toward a specification developers can build on for longer periods.\n::\n\n::heading\n[何]{なに:what:N5}が[変わった]{かわった:changed:N3}のか\n\n#en\nWhat Changed\n::\n\n::para\n[最大]{さいだい:largest:N3}の[焦点]{しょうてん:focal point:N1}は、Component Modelに[非同期]{ひどうき:async:N3}の[仕組み]{しくみ:mechanism:N3}が[正式]{せいしき:officially:N3} [入った]{はいった:entered:N5}ことだ。Bytecode Allianceは、WASI 0.3で`async func`、`stream\u003CT>`、`future\u003CT>`のような[基本要素]{きほんようそ:basic elements:N1}が[土台]{どだい:foundation:N4}に[加わった]{くわわった:were added:N3}と[説明]{せつめい:explain:N3}している。\n\n#en\nThe main change is that the Component Model now includes async as an official mechanism. Bytecode Alliance says WASI 0.3 adds foundational elements such as `async func`, `stream\u003CT>`, and `future\u003CT>`.\n::\n\n::para\nこれまでのWASI 0.2では、[各]{かく:each:N2}コンポーネントがそれぞれの[事象待機]{じしょうたいき:event-loop waiting:N2}の[流れ]{ながれ:flow:N3}を[持つ]{もつ:have:N4} [形]{かたち:form:N3}になりやすく、[別]{べつ:different:N4}のコンポーネントどうしを[組み合わせる]{くみあわせる:compose:N3}ときに[実行環境側]{じっこうかんきょうがわ:runtime side:N1}の[工夫]{くふう:custom work:N3}が[必要]{ひつよう:necessary:N3}だった。WASI 0.3では、ホストが[一つ]{ひとつ:one:N5}の[共通]{きょうつう:shared:N3}[イベントループ]{イベントループ:event loop}を[管理]{かんり:manage:N2}し、[複数]{ふくすう:multiple:N2}コンポーネントを[同じ]{おなじ:same:N4}[基盤]{きばん:foundation:N1}で[扱える]{あつかえる:can handle:N1}ようになった。\n\n#en\nUnder WASI 0.2, each component tended to bring its own event-loop flow, so composing different components often required runtime-side workarounds. In WASI 0.3, the host manages one shared event loop and can handle multiple components on the same foundation.\n::\n\n::heading\n[開発者]{かいはつしゃ:developers:N4}にとっての[意味]{いみ:meaning:N4}\n\n#en\nWhy It Matters for Developers\n::\n\n::para\nこの[変更]{へんこう:change:N3}が[重要]{じゅうよう:important:N3}なのは、[言語]{げんご:programming language:N4}や[実装]{じっそう:implementation:N2}ごとに[異なる]{ことなる:different:N1} [非同期]{ひどうき:async:N3}モデルを[接続]{せつぞく:connect:N2}しやすくするからだ。Bytecode Allianceは、[同じ]{おなじ:same:N4}[原始機能]{げんしきのう:primitive functions:N3}がRust、Go、JavaScript、Pythonなどにまたがって[使われる]{つかわれる:be used:N4} [方向]{ほうこう:direction:N3}を[示した]{しめした:showed:N3}。\n\n#en\nThe change matters because it makes it easier to connect async models that differ by language and implementation. Bytecode Alliance presents it as a direction where the same primitive capabilities can be used across Rust, Go, JavaScript, Python, and more.\n::\n\n::para\nPublickeyの[整理]{せいり:summary:N1}でも、[以前]{いぜん:before:N4}は[個別]{こべつ:individual:N2}コンポーネントごとの[非同期API]{ひどうきエーピーアイ:asynchronous API:N3}が[混ざり]{まざり:mixed:N2}にくかったのに[対し]{たいし:whereas:N3}、WASI 0.3では[相互接続]{そうごせつぞく:interconnection:N2}が[容易]{ようい:easier:N3}になったと[説明]{せつめい:explain:N3}されている。つまり、[多言語]{たげんご:multi-language:N4}のWasmシステムを[組む]{くむ:assemble:N3}ときの[面倒]{めんどう:friction:N3}が、[仕様]{しよう:specification:N3}レベルで[減る]{へる:decrease:N2}ことになる。\n\n#en\nPublickey's summary also says that where per-component async APIs used to be hard to mix, WASI 0.3 makes interconnection easier. In practice, that reduces some of the friction of assembling multi-language Wasm systems at the specification level.\n::\n\n::heading\n[周辺実装]{しゅうへんじっそう:surrounding implementations:N2}はどう[動く]{うごく:move:N4}か\n\n#en\nWhat Happens Around the Runtime Implementations\n::\n\n::para\n[公式記事]{こうしききじ:official article:N3}では、Wasmtime 45がすでに[最新]{さいしん:latest:N3}リリース[候補版]{こうほばん:release candidate:N2}を[実行]{じっこう:run:N3}でき、Wasmtime 46ではWASI 0.3.0が[初期設定]{しょきせってい:default setting:N2}で[有効化]{ゆうこうか:enabled:N2}される[予定]{よてい:plan:N3}だとされる。JavaScript[向け]{むけ:for:N3}ツールチェーンのjcoも[追随]{ついずい:follow:N1}していると[案内]{あんない:note:N1}された。\n\n#en\nThe official article says Wasmtime 45 can already run the latest release candidate, and Wasmtime 46 is expected to enable WASI 0.3.0 by default. It also notes that the JavaScript-focused jco toolchain is following behind.\n::\n\n::para\n[一方]{いっぽう:on the other hand:N4}で、[言語向け]{げんごむけ:for language toolchains:N3}の[対応]{たいおう:support:N1}はまだ[広がる]{ひろがる:expand:N4} [途中]{とちゅう:in progress:N3}だ。Bytecode Allianceは、[今後]{こんご:going forward:N5}Rust、Go、JavaScript、Pythonなどの[ゲスト向け]{ゲストむけ:guest-side:N3}ツールチェーンでもWASI 0.3の[採用]{さいよう:adoption:N2}が[進む]{すすむ:advance:N3}と[見ている]{みている:sees:N5}が、この[部分]{ぶぶん:part:N3}は[段階的]{だんかいてき:stepwise:N2}に[進む]{すすむ:move forward:N3}と[読んだ]{よんだ:read:N5}ほうがよさそうだ。\n\n#en\nAt the same time, support across language toolchains is still expanding. Bytecode Alliance expects WASI 0.3 adoption to spread across guest-side toolchains such as Rust, Go, JavaScript, and Python, but this part still looks likely to roll out step by step.\n::\n\n::callout\n[非同期]{ひどうき:async:N3}が[追加]{ついか:addition:N3}されたこと[自体]{じたい:itself:N4}よりも、[複数]{ふくすう:multiple:N2}コンポーネントが[同じ]{おなじ:same:N4}[作法]{さほう:operating model:N3}で[待機]{たいき:wait:N3}し、[再開]{さいかい:resume:N2}できるようになったことが、[運用面]{うんようめん:operationally:N3}ではかなり[大きい]{おおきい:large:N5}。\n\n#en\nMore important than async being added at all is that multiple components can now wait and resume under the same operating model. Operationally, that is the bigger shift.\n::\n\n::heading\nこの[先]{さき:next phase:N5}にあるもの\n\n#en\nWhat Comes Next\n::\n\n::para\nBytecode Allianceは[別記事]{べつきじ:separate article:N3}「The Road to Component Model 1.0」で、[次]{つぎ:next:N3}の[目標]{もくひょう:goal:N1}をComponent Model 1.0に[置いた]{おいた:set:N3}。そこではABIの[改善]{かいぜん:improvement:N1}、[複数]{ふくすう:multiple:N2}ブラウザ[実装]{じっそう:implementations:N2}、より[簡単]{かんたん:simpler:N2}な[組み込み]{くみこみ:embedding:N3}などが[課題]{かだい:tasks:N2}として[挙げられている]{あげられている:listed:N1}。\n\n#en\nIn a separate article, \"The Road to Component Model 1.0,\" Bytecode Alliance sets the next target as Component Model 1.0. It lists ABI improvements, multiple browser implementations, and easier embedding as the work ahead.\n::\n\n::para\n[今回]{こんかい:this time:N3}のWASI 0.3は、WebAssemblyが「[実験的]{じっけんてき:experimental:N3}で[面白い]{おもしろい:interesting:N3}」[段階]{だんかい:stage:N2}から、[言語横断]{げんごおうだん:cross-language:N3}の[部品接続]{ぶひんせつぞく:component composition:N2}を[現実的]{げんじつてき:practical:N3}に[設計]{せっけい:design:N2}する[段階]{だんかい:stage:N2}へ[進んだ]{すすんだ:advanced:N3}ことを[示す]{しめす:show:N3} [節目]{ふしめ:milestone:N1}だ。[実行環境]{じっこうかんきょう:runtime environment:N1}や[開発基盤]{かいはつきばん:development platform:N1}を[作る]{つくる:build:N4}エンジニアほど、この[安定化]{あんていか:stabilization:N3}の[意味]{いみ:meaning:N4}を[重く]{おもく:seriously:N4} [見る]{みる:view:N5}ことになりそうだ。\n\n#en\nWASI 0.3 marks a step where WebAssembly moves beyond being merely interesting and becomes more practical for designing cross-language component composition. The engineers most likely to care are the ones building runtimes and development platforms.\n::\n"]