WebAssembly WASIã®ããã»ã¹ãµã³ãããã¯ã¹æ©èœã«ãããå®å šã§éé¢ãããã¢ããªå®è¡ãå¯èœã«ãã»ãã¥ãªãã£ãç§»æ€æ§ãããã©ãŒãã³ã¹ãåäžãããæ¹æ³ã解説ããŸãã
WebAssembly WASI ããã»ã¹ãµã³ãããã¯ã¹ïŒéé¢ãããããã»ã¹ç°å¢
WebAssembly (Wasm)ã¯ã髿§èœã§ããŒã¿ãã«ããã€å®å šãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®é©æ°çãªæè¡ãšããŠç»å ŽããŸãããåœåã¯ãŠã§ããã©ãŠã¶åãã«èšèšãããŸãããããã®èœåã¯ãããã¯ããã«è¶ ãããµãŒããŒã¬ã¹ã³ã³ãã¥ãŒãã£ã³ã°ããšããžã³ã³ãã¥ãŒãã£ã³ã°ãçµèŸŒã¿ã·ã¹ãã ãªã©ãããŸããŸãªåéã§å¿çšãããŠããŸããWasmã®å€çšéæ§ãšã»ãã¥ãªãã£ã®éµãšãªãåŽé¢ã¯ãç¹ã«WebAssembly System Interface (WASI)ãšçµã¿åãããå Žåã®ãµã³ãããã¯ã¹ã¢ãã«ã§ãããã®èšäºã§ã¯ãWebAssembly WASIããã»ã¹ãµã³ãããã¯ã¹ã®è€éããæãäžãããã®å©ç¹ãå®è£ ããããŠã°ããŒãã«ãªæèã§ã®æœåšçãªå¿çšãæ¢ããŸãã
WebAssemblyãšãã®ãµã³ãããã¯ã¹ã¢ãã«ã®çè§£
WebAssemblyã¯ãCãC++ãRustãGoãªã©ã®é«æ°Žæºèšèªã®ã³ã³ãã€ã«ã¿ãŒã²ãããšããŠèšèšããããã€ããªåœä»€åœ¢åŒã§ããå¹ççãã€ããŒã¿ãã«ã«èšèšãããŠãããç°ãªããã©ãããã©ãŒã ãã¢ãŒããã¯ãã£éã§ã³ãŒããäžè²«ããŠå®è¡ã§ããŸããåŸæ¥ã®æ©æ¢°èªãšã¯ç°ãªããWasmã¯ãµã³ãããã¯ã¹åãããç°å¢å ã§åäœããŸãããã®ãµã³ãããã¯ã¹ã¯ãå®å šã§éé¢ãããå®è¡ã³ã³ããã¹ããæäŸããWasmã³ãŒããåºç€ãšãªããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãããŒããŠã§ã¢ã«çŽæ¥ã¢ã¯ã»ã¹ããã®ãé²ããŸãã
WebAssemblyã®ãµã³ãããã¯ã¹ã¢ãã«ã®äž»ãªç¹åŸŽã¯æ¬¡ã®ãšããã§ãã
- ã¡ã¢ãªåé¢: Wasmã³ãŒãã¯ç¬èªã®ç·åœ¢ã¡ã¢ãªç©ºéå ã§åäœãããã®å²ãåœãŠãããé åå€ã®ã¡ã¢ãªãžã®ã¢ã¯ã»ã¹ã倿Žãé²ããŸãã
- å¶åŸ¡ãããŒã®æŽåæ§: Wasmã¯å³æ Œãªå¶åŸ¡ãããŒã匷å¶ããä»»æã®ãžã£ã³ããã³ãŒãã€ã³ãžã§ã¯ã·ã§ã³æ»æãé²ããŸãã
- å¶éãããã·ã¹ãã ã³ãŒã«: Wasmã³ãŒãã¯ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«çŽæ¥ã·ã¹ãã ã³ãŒã«ãè¡ãããšã¯ã§ããŸãããå€éšãšã®ããåãã¯ãã¹ãŠãæç¢ºã«å®çŸ©ãããã€ã³ã¿ãŒãã§ãŒã¹ãä»ããŠä»²ä»ãããå¿ èŠããããŸãã
ãã®åºæã®ãµã³ãããã¯ã¹æ©èœã«ãããWasmã¯ãŠã§ããã©ãŠã¶ã®ãã©ã°ã€ã³ããµãŒããŒã¬ã¹é¢æ°ã®ãµãŒãããŒãã£ã³ã³ããŒãã³ããªã©ãä¿¡é Œã§ããªãã³ãŒããå®å šã«å®è¡ããããã®é åçãªéžæè¢ãšãªããŸãã
WASIã®ç޹ä»ïŒãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãžã®æ©æž¡ã
Wasmã¯åŒ·åãªãµã³ãããã¯ã¹ã¢ãã«ãæäŸããŸãããåœåã¯ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšå¯Ÿè©±ããããã®æšæºåãããæ¹æ³ããããŸããã§ããããã®å¶éãããã©ãŠã¶ç°å¢å€ã§ã®æ¡çšã劚ããŠããŸãããããã解決ããããã«ãWebAssembly System Interface (WASI)ãäœæãããŸããã
WASIã¯WebAssemblyã®ããã®ã¢ãžã¥ã©ãŒã·ã¹ãã ã€ã³ã¿ãŒãã§ãŒã¹ã§ããWasmã¢ãžã¥ãŒã«ããã¡ã€ã«ã¢ã¯ã»ã¹ããããã¯ãŒãã³ã°ãããã»ã¹ç®¡çãªã©ããã¹ãã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšå¯Ÿè©±ããããã«äœ¿çšã§ããäžé£ã®é¢æ°ãå®çŸ©ããŸããéèŠãªã®ã¯ãWASIãå¶åŸ¡ããå¶éãããã€ã³ã¿ãŒãã§ãŒã¹ãæäŸããããšã§ãWasmã®ãµã³ãããã¯ã¹åãããæ§è³ªãç¶æããããšã§ãã
WASIããæ»æå¯Ÿè±¡é åãæå°éã«æããWasmã³ãŒããäžæ£ãªã¢ã¯ã·ã§ã³ãå®è¡ããã®ãé²ãããã«èšèšããããæ éã«ãã¥ã¬ãŒã·ã§ã³ãããã·ã¹ãã ã³ãŒã«ã®ã»ãããšèããŠãã ãããåWASI颿°ã¯ã»ãã¥ãªãã£ã念é ã«çœ®ããŠæ éã«èšèšãããŠãããWasmã³ãŒããæç€ºçã«ã¢ã¯ã»ã¹èš±å¯ãäžãããããªãœãŒã¹ã«ã®ã¿ã¢ã¯ã»ã¹ã§ããããã«ä¿èšŒããŸãã
WASIããã»ã¹ãµã³ãããã¯ã¹ïŒåŒ·åãããåé¢ãšã»ãã¥ãªãã£
Wasmã®ãµã³ãããã¯ã¹ãšWASIã®ã·ã¹ãã ã€ã³ã¿ãŒãã§ãŒã¹ã®åºç€ã®äžã«æ§ç¯ãããWASIããã»ã¹ãµã³ãããã¯ã¹ã¯ãåé¢ãšã»ãã¥ãªãã£ã次ã®ã¬ãã«ã«åŒãäžããŸããããã«ãããWasmã¢ãžã¥ãŒã«ãéé¢ãããããã»ã¹ãšããŠå®è¡ã§ãããã¹ãã·ã¹ãã ãžã®æœåšçãªåœ±é¿ãããã«å¶éããŸãã
åŸæ¥ã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§ã¯ãããã»ã¹ã¯éåžžãã¡ã¢ãªä¿è·ãã¢ã¯ã»ã¹å¶åŸ¡ãªã¹ããªã©ã®ããŸããŸãªã¡ã«ããºã ãéããŠäºãã«åé¢ãããŠããŸããWASIããã»ã¹ãµã³ãããã¯ã¹ã¯ãWasmã¢ãžã¥ãŒã«ã«å¯ŸããŠåçã®ã¬ãã«ã®åé¢ãæäŸããããããäºãã«ããŸãã¯ãã¹ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«å¹²æžã§ããªãããã«ããŸãã
WASIããã»ã¹ãµã³ãããã¯ã¹ã®äž»ãªå©ç¹ïŒ
- ã»ãã¥ãªãã£ã®åŒ·å: Wasmã¢ãžã¥ãŒã«ãéé¢ãããããã»ã¹ã§å®è¡ããããšã«ãããæœåšçãªã»ãã¥ãªãã£è匱æ§ã®åœ±é¿ãæå°éã«æããããŸããããWasmã¢ãžã¥ãŒã«ã䟵害ãããŠããä»ã®ã¢ãžã¥ãŒã«ããã¹ãã·ã¹ãã ã«çŽæ¥ã¢ã¯ã»ã¹ããã圱é¿ãäžãããããããšã¯ã§ããŸããã
- ãªãœãŒã¹ç®¡çã®æ¹å: ããã»ã¹åé¢ã«ãããCPUãã¡ã¢ãªã®å²ãåœãŠãªã©ãããåªãããªãœãŒã¹ç®¡çãå¯èœã«ãªããŸããåWasmã¢ãžã¥ãŒã«ã«ç¹å®ã®ãªãœãŒã¹éãå²ãåœãŠãããšãã§ããéå°ãªãªãœãŒã¹æ¶è²»ãä»ã®ã¢ãžã¥ãŒã«ã®ããã©ãŒãã³ã¹ãžã®åœ±é¿ãé²ããŸãã
- ãããã°ãšç£èŠã®ç°¡çŽ å: éé¢ãããããã»ã¹ã¯ããããã°ãšç£èŠã容æã§ããåããã»ã¹ãåå¥ã«æ€æ»ã§ãããããåé¡ã®ç¹å®ãšè§£æ±ºãç°¡åã«ãªããŸãã
- ã¯ãã¹ãã©ãããã©ãŒã ã®äžè²«æ§: WASIã¯ãç°ãªããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãã¢ãŒããã¯ãã£éã§äžè²«ããã·ã¹ãã ã€ã³ã¿ãŒãã§ãŒã¹ãæäŸããããšãç®æããŠããŸããããã«ãããä¿®æ£ãªãã§ããŸããŸãªãã©ãããã©ãŒã ã§å®è¡ã§ããWasmã¢ããªã±ãŒã·ã§ã³ã®éçºãšãããã€ã容æã«ãªããŸããäŸãã°ãLinuxäžã§WASIã§ãµã³ãããã¯ã¹åãããWasmã¢ãžã¥ãŒã«ã¯ãWindowsãmacOSäžã§WASIã§ãµã³ãããã¯ã¹åãããå Žåãåæ§ã«åäœããã¯ãã§ãïŒãã ããåºç€ãšãªããã¹ãåºæã®å®è£ ã¯ç°ãªãå ŽåããããŸãïŒã
WASIããã»ã¹ãµã³ãããã¯ã¹ã®å®çšäŸ
WASIããã»ã¹ãµã³ãããã¯ã¹ã倧ããªå©ç¹ãæäŸã§ããã·ããªãªãèããŠã¿ãŸãããã
- ãµãŒããŒã¬ã¹ã³ã³ãã¥ãŒãã£ã³ã°: ãµãŒããŒã¬ã¹ãã©ãããã©ãŒã ã¯ãããŸããŸãªãœãŒã¹ããã®ä¿¡é Œã§ããªãã³ãŒããå®è¡ããããšããããããŸããWASIããã»ã¹ãµã³ãããã¯ã¹ã¯ããããã®é¢æ°ãå®è¡ããããã®å®å šã§éé¢ãããç°å¢ãæäŸãããã©ãããã©ãŒã ãæªæã®ããã³ãŒãããªãœãŒã¹ã®æ¯æžããä¿è·ããŸããã°ããŒãã«ãªCDNãããã€ããŒããµãŒããŒã¬ã¹é¢æ°ã䜿çšããŠåçã«ç»åããªãµã€ãºããå Žé¢ãæ³åããŠãã ãããWASIãµã³ãããã¯ã¹ã¯ãæªæã®ããç»åæäœã³ãŒããCDNã®ã€ã³ãã©ã䟵害ããã®ãé²ããŸãã
- ãšããžã³ã³ãã¥ãŒãã£ã³ã°: ãšããžããã€ã¹ã¯ãªãœãŒã¹ãéãããŠããããšãå€ããä¿¡é Œã§ããªãç°å¢ã«å±éãããå¯èœæ§ããããŸããWASIããã»ã¹ãµã³ãããã¯ã¹ã¯ãã¢ããªã±ãŒã·ã§ã³ãåé¢ããæ©å¯ããŒã¿ãã·ã¹ãã ãªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ãé²ãããšã§ããããã®ããã€ã¹ãä¿è·ããã®ã«åœ¹ç«ã¡ãŸããã¹ããŒãã·ãã£ã®ã»ã³ãµãŒããéçŽãããçµæãäžå€®ãµãŒããŒã«éä¿¡ããåã«ããŒã«ã«ã§ããŒã¿ãåŠçããã±ãŒã¹ãèããŠã¿ãŠãã ãããWASIã¯ã»ã³ãµãŒãæªæã®ããã³ãŒããããŒã¿äŸµå®³ããä¿è·ããŸãã
- çµèŸŒã¿ã·ã¹ãã : çµèŸŒã¿ã·ã¹ãã ã¯ãé«ãä¿¡é Œæ§ãšã»ãã¥ãªãã£ãæ±ããããéèŠãªã¢ããªã±ãŒã·ã§ã³ãå®è¡ããããšããããããŸããWASIããã»ã¹ãµã³ãããã¯ã¹ã¯ããããã®ã·ã¹ãã ããœãããŠã§ã¢ã®è匱æ§ããä¿è·ããæå³ã©ããã«åäœããããšãä¿èšŒããã®ã«åœ¹ç«ã¡ãŸããäŸãã°ãèªåè»ã®å¶åŸ¡ã·ã¹ãã ã§ã¯ãWASIãç°ãªããœãããŠã§ã¢ã¢ãžã¥ãŒã«ãåé¢ããããã¢ãžã¥ãŒã«ã®äžå ·åãä»ã®éèŠãªæ©èœã«åœ±é¿ãäžããã®ãé²ãããšãã§ããŸãã
- ãã©ã°ã€ã³ã¢ãŒããã¯ãã£: ãã©ã°ã€ã³ããµããŒãããã¢ããªã±ãŒã·ã§ã³ã¯ãä¿¡é Œã§ããªãã³ãŒãã«é¢é£ããã»ãã¥ãªãã£ãªã¹ã¯ã«çŽé¢ããããšããããããŸããWASIã䜿çšãããšããã©ã°ã€ã³ãéé¢ãããããã»ã¹å ã§å®è¡ã§ããæ©å¯æ§ã®é«ãã·ã¹ãã ãªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ãå¶éã§ããŸããããã«ãããããå®å šã§ä¿¡é Œæ§ã®é«ããã©ã°ã€ã³ã¢ãŒããã¯ãã£ãå¯èœã«ãªããŸããäžççã«äœ¿çšãããŠãããã¶ã€ã³ãœãããŠã§ã¢ããéçºè ãã«ã¹ã¿ã ãã©ã°ã€ã³ãäœæã§ããããã«ããWASIã«ãã£ãŠå®å šã«åé¢ããããšã§ãã³ã¢ã¢ããªã±ãŒã·ã§ã³ã®å®å®æ§ãæãªãããšãªãæ©èœãæ¡åŒµã§ããããšãã£ãäŸãèããããŸãã
- ã»ãã¥ã¢ã³ã³ãã¥ãŒãã£ã³ã°: WASIã¯ãæ©å¯ã³ã³ãã¥ãŒãã£ã³ã°ã®ããã®ã»ãã¥ã¢ãªãšã³ã¯ã¬ãŒããäœæããããã«äœ¿çšã§ããä¿¡é Œã§ããç°å¢ã§æ©å¯ã³ãŒããšããŒã¿ãå®è¡å¯èœã«ããŸããããã¯ãéèãµãŒãã¹ããã«ã¹ã±ã¢ãªã©ã®åéã§å¿çšãããŸããæ©å¯æ§ã®é«ãã«ãŒã詳现ãããŒã¿æŒæŽ©ãé²ãããã«WASIã§ãµã³ãããã¯ã¹åãããç°å¢å ã§åŠçããããå®å šãªæ±ºæžåŠçã·ã¹ãã ãèããŠã¿ãŠãã ããã
WASIããã»ã¹ãµã³ãããã¯ã¹ã®å®è£
WASIããã»ã¹ãµã³ãããã¯ã¹ã®å®è£ ãæ¯æŽããããã«ãããã€ãã®ããŒã«ãšã©ã€ãã©ãªãå©çšå¯èœã§ãããããã®ããŒã«ã¯ãéé¢ãããWasmããã»ã¹ãäœæããã³ç®¡çããããã«å¿ èŠãªã€ã³ãã©ã¹ãã©ã¯ãã£ãæäŸããŸãã
WASIããã»ã¹ãµã³ãããã¯ã¹ã®å®è£ ã«é¢ããäž»èŠã³ã³ããŒãã³ãïŒ
- Wasmã©ã³ã¿ã€ã : Wasmã©ã³ã¿ã€ã ã¯Wasmã³ãŒãã®å®è¡ãæ
åœããŸãã以äžãå«ãããã€ãã®Wasmã©ã³ã¿ã€ã ãWASIããµããŒãããŠããŸãïŒ
- Wasmtime: Bytecode Allianceã«ãã£ãŠéçºãããã¹ã¿ã³ãã¢ãã³ã®Wasmã©ã³ã¿ã€ã ãããã©ãŒãã³ã¹ãšã»ãã¥ãªãã£ãéèŠããŠèšèšãããŠãããWASIãåªãã圢ã§ãµããŒãããŸãã
- Wasmer: WASIããµããŒãããããŸããŸãªåã蟌ã¿ãªãã·ã§ã³ãæäŸãããããäžã€ã®äººæ°ã®ããWasmã©ã³ã¿ã€ã ã
- Lucet: é«éãªèµ·åæéãšé«æ§èœã®ããã«èšèšãããWasmã³ã³ãã€ã©ããã³ã©ã³ã¿ã€ã ã
- WASI SDK: WASI SDKã¯ãCãC++ãRustã®ã³ãŒããWASIäºæã®Wasmã¢ãžã¥ãŒã«ã«ã³ã³ãã€ã«ããããã«å¿ èŠãªããŒã«ãšã©ã€ãã©ãªãæäŸããŸãã
- ããã»ã¹ç®¡ç: ããã»ã¹ç®¡çã·ã¹ãã ã¯ãéé¢ãããWasmããã»ã¹ã®äœæãšç®¡çãæ åœããŸããããã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ããªããã£ãã䜿çšããããæ¢åã®ã³ã³ããåæè¡ã掻çšããŠå®è£ ã§ããŸãã
ç°¡ç¥åãããäŸïŒæŠå¿µïŒ
å®å šãªå®è£ ã¯ãã®èšäºã®ç¯å²ãè¶ ããŸãããWasmtimeã䜿çšããŠWASIããã»ã¹ãµã³ãããã¯ã¹ãå®è£ ããæ¹æ³ã®æŠå¿µçãªæŠèŠã以äžã«ç€ºããŸãã
- Wasmã¢ãžã¥ãŒã«ã®ã³ã³ãã€ã«: WASI SDKã䜿çšããŠãã¢ããªã±ãŒã·ã§ã³ã³ãŒããWASIäºæã®Wasmã¢ãžã¥ãŒã«ã«ã³ã³ãã€ã«ããŸãã
- Wasmtimeãšã³ãžã³ã®åæå: Wasmtimeãšã³ãžã³ã®ã€ã³ã¹ã¿ã³ã¹ãäœæããŸãã
- Wasmtimeã¢ãžã¥ãŒã«ã®äœæ: ã³ã³ãã€ã«ãããWasmã¢ãžã¥ãŒã«ãWasmtimeãšã³ãžã³ã«ããŒãããŸãã
- WASIã€ã³ããŒãã®èšå®: WASIç°å¢ãäœæããèš±å¯ãããã€ã³ããŒãïŒäŸïŒãã¡ã€ã«ã·ã¹ãã ã¢ã¯ã»ã¹ããããã¯ãŒã¯ã¢ã¯ã»ã¹ïŒãèšå®ããŸããç¹å®ã®ãã£ã¬ã¯ããªããããã¯ãŒã¯ã¢ãã¬ã¹ãžã®ã¢ã¯ã»ã¹ãå¶éã§ããŸãã
- ã¢ãžã¥ãŒã«ã®ã€ã³ã¹ã¿ã³ã¹å: èšå®ãããWASIç°å¢ãã€ã³ããŒããšããŠæäŸããWasmã¢ãžã¥ãŒã«ã®ã€ã³ã¹ã¿ã³ã¹ãäœæããŸãã
- ã¢ãžã¥ãŒã«ã®å®è¡: Wasmã¢ãžã¥ãŒã«å ã®ç®çã®é¢æ°ãåŒã³åºããŸããWasmtimeã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšã®ãã¹ãŠã®å¯Ÿè©±ãWASIã€ã³ã¿ãŒãã§ãŒã¹ãä»ããŠä»²ä»ãããèšå®ãããå¶éã«åŸãããšãä¿èšŒããŸãã
- ããã»ã¹ã®ç£èŠãšç®¡ç: Wasmtimeã©ã³ã¿ã€ã ã¯ããªãœãŒã¹äœ¿çšéãç£èŠããWasmããã»ã¹ã«å¶éãé©çšããããã«èšå®ã§ããŸãã
ããã¯ç°¡ç¥åãããäŸã§ãããå ·äœçãªå®è£ ã®è©³çްã¯éžæããWasmã©ã³ã¿ã€ã ãšããã»ã¹ç®¡çã·ã¹ãã ã«ãã£ãŠç°ãªããŸããããããåºæ¬çãªååã¯åãã§ããWasmã¢ãžã¥ãŒã«ã¯ãµã³ãããã¯ã¹åãããç°å¢å ã§å®è¡ããããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšã®ãã¹ãŠã®å¯Ÿè©±ã¯WASIã€ã³ã¿ãŒãã§ãŒã¹ãä»ããŠä»²ä»ãããŸãã
課é¡ãšèæ ®äºé
WASIããã»ã¹ãµã³ãããã¯ã¹ã¯å€§ããªå©ç¹ãæäŸããŸãããçæãã¹ã課é¡ãèæ ®äºé ããããŸãã
- ããã©ãŒãã³ã¹ã®ãªãŒããŒããã: ããã»ã¹åé¢ã¯ãéé¢ãããããã»ã¹ã管çãããã远å ã®ãªãœãŒã¹ãå¿ èŠãšãªããããããã©ãŒãã³ã¹ã«è¥å¹²ã®ãªãŒããŒããããããããå¯èœæ§ããããŸããæ éãªãã³ãããŒãã³ã°ãšæé©åãéèŠã§ãã
- è€éã: WASIããã»ã¹ãµã³ãããã¯ã¹ã®å®è£ ã¯è€éã«ãªãå¯èœæ§ããããWasmãWASIãããã³ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®æŠå¿µã«é¢ããæ·±ãçè§£ãå¿ èŠã§ãã
- ãããã°: éé¢ãããããã»ã¹ã§å®è¡ãããŠããã¢ããªã±ãŒã·ã§ã³ã®ãããã°ã¯ãåŸæ¥ã®ã¢ããªã±ãŒã·ã§ã³ã®ãããã°ãããå°é£ãªå ŽåããããŸãããããã®èª²é¡ã«å¯ŸåŠããããã®ããŒã«ãæè¡ã¯é²åããŠããŸãã
- WASIæ©èœã®å®å šæ§: WASIã¯æ¥éã«é²åããŠããŸããããŸã åŸæ¥ã®ã·ã¹ãã ã³ãŒã«ã®å®å šãªä»£æ¿ã§ã¯ãããŸãããäžéšã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ããŸã WASIã§å©çšã§ããªãæ©èœãå¿ èŠã«ãªãå ŽåããããŸããããããWASIã®ããŒããããã«ã¯ããããã®ã®ã£ãããæéãšãšãã«åããŠããèšç»ãå«ãŸããŠããŸãã
- æšæºå: WASIã¯æšæºãšããŠèšèšãããŠããŸãããWasmã©ã³ã¿ã€ã ã«ãã£ãŠå®è£ ãè¥å¹²ç°ãªãå ŽåããããŸããã¢ããªã±ãŒã·ã§ã³ãç¹å®ã®ã©ã³ã¿ã€ã åºæã®åäœã«äŸåããŠããå Žåãç§»æ€æ§ã®åé¡ã«ã€ãªããå¯èœæ§ããããŸããã³ã¢WASI仿§ã«æºæ ããããšãéèŠã§ãã
WASIããã»ã¹ãµã³ãããã¯ã¹ã®æªæ¥
WASIããã»ã¹ãµã³ãããã¯ã¹ã¯ãæããæªæ¥ãæã€æ¥éã«é²åããŠããæè¡ã§ããWASIãæçããæ©èœãå®å šã«ãªãã«ã€ããŠãå¹ åºããã©ãããã©ãŒã ã§ã¢ããªã±ãŒã·ã§ã³ãä¿è·ããåé¢ããäžã§ãŸããŸãéèŠãªåœ¹å²ãæãããšæåŸ ãããŠããŸããä»åŸã®é²æ©ã¯ä»¥äžã®ç¹ã«çŠç¹ãåœãŠãã§ãããã
- ã»ãã¥ãªãã£æ©èœã®åŒ·å: 詳现ãªã¢ã¯ã»ã¹ã³ã³ãããŒã«ãã¡ã¢ãªå®å šã¡ã«ããºã ãªã©ãã»ãã¥ãªãã£æ©èœã®ç¶ç¶çãªéçºã
- ããã©ãŒãã³ã¹ã®åäž: ããã»ã¹åé¢ã®ããã©ãŒãã³ã¹ãªãŒããŒããããåæžããããã®æé©åã
- WASI APIã®æ¡åŒµ: ããåºç¯ãªã¢ããªã±ãŒã·ã§ã³èŠä»¶ããµããŒãããããã®æ°ããWASI APIã®è¿œå ã
- ããè¯ãããŒãªã³ã°: WASIã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯ããããã€ããããã°ã®ããã®ããããŠãŒã¶ãŒãã¬ã³ããªãŒãªããŒã«ã®éçºã
- ã³ã³ããåæè¡ãšã®çµ±å: DockerãKubernetesãªã©ã®ã³ã³ããåæè¡ãšã®ããç·å¯ãªçµ±åãæ¢æ±ããWASIã¢ããªã±ãŒã·ã§ã³ã®ãããã€ãšç®¡çãç°¡çŽ åããŸããããã«ã¯ãWASIã¯ãŒã¯ããŒãã«ç¹åããå°çšã®ã³ã³ããã©ã³ã¿ã€ã ãå«ãŸããå¯èœæ§ãé«ãã§ãã
WASIããã»ã¹ãµã³ãããã¯ã¹ã®æ¡çšã¯ãæè¡ãæçããããå€ãã®éçºè ããã®èœåã«æ £ã芪ããã«ã€ããŠå éããã§ããããã»ãã¥ãªãã£ãç§»æ€æ§ãããã©ãŒãã³ã¹ãåäžããããã®å¯èœæ§ã¯ããµãŒããŒã¬ã¹ã³ã³ãã¥ãŒãã£ã³ã°ããçµèŸŒã¿ã·ã¹ãã ãŸã§ãå¹ åºãã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠé åçãªéžæè¢ãšãªããŸãã
çµè«
WebAssembly WASIããã»ã¹ãµã³ãããã¯ã¹ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã»ãã¥ãªãã£ãšåé¢ã«ããã倧ããªåé²ã衚ããŠããŸããWasmã¢ãžã¥ãŒã«ãå®è¡ããããã®å®å šã§ããŒã¿ãã«ãªç°å¢ãæäŸããããšã§ãéçºè ã¯ããŸããŸãªãã©ãããã©ãŒã ã§å®è¡ã§ãããããä¿¡é Œæ§ãé«ãå®å šãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããŸãã課é¡ã¯æ®ã£ãŠããŸãããWASIããã»ã¹ãµã³ãããã¯ã¹ã®æªæ¥ã¯ææã§ãããæ¬¡äžä»£ã®ã³ã³ãã¥ãŒãã£ã³ã°ã圢äœãäžã§éèŠãªåœ¹å²ãæããæºåãã§ããŠããŸããã°ããŒãã«ããŒã ããŸããŸãè€éã§çžäºæ¥ç¶ãããã¢ããªã±ãŒã·ã§ã³ãéçºã»å±éããäžã§ãå®å šã§éé¢ãããäžè²«æ§ã®ããå®è¡ç°å¢ãæäŸããWASIã®èœåã¯ããããŸã§ä»¥äžã«éèŠã«ãªãã§ãããã