Go言語1.21で、WebAssembly System Interface(WASI)の実験的サポートへ

今回は「Go言語1.21で、WebAssembly System Interface(WASI)の実験的サポートへ」についてご紹介します。

関連ワード (発生、簡単、重宝等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


Googleが中心となってオープンソースで開発されているGo言語の次期バージョン「Go 1.21」では、WebAssembly System Interface(WASI)が実験的にサポートされることが明らかになりました。

これによりGo言語で簡単にファイルアクセスなどOSの主要なAPIを呼び出しつつ、特定のOSに依存しないポータブルな実装のWebAssemblyアプリケーション開発の実現が期待されます。

Go 1.21 Release Candidate 3 is released!

Run it in dev! Run it in prod! File bugs! https://t.co/Ul1xGhvlkf

Announcement: https://t.co/5Ncs1od4Vj

Download: https://t.co/mwRBIC7g7P#golang pic.twitter.com/dlBqPZPcco

— Go (@golang) July 14, 2023

Go言語はサポートするOSやCPUの種類をそれぞれ「GOOS」と「GOARCH」の値で示しています。例えばWindowsのGOOS値は「windows」、CPUを示す「GOARCH」には32ビットx86を示す「386」や64ビットx86やAMD64を示す「amd64」などがあります。

WASIのサポートでは、GOOSがWASIバージョン1を意味する「wasip1」、GOARCHはこれまでのGoのWebAssemblyサポートと同じ「wasm」となります。

Go 1.21は現在リリース候補版(RC)3で、8月に正式版がリリースされる予定です。

WebAssembly System Interface(WASI)とは

Go言語はGo言語は、WindowsやmacOS、Linux、FreeBSD、iOS、Androidなど、さまざまなOSやCPUに対応したバイナリを生成できる機能を備えており、2018年4月にはこれらに加えてWebAssemblyのサポートも明らかになりました。

しかしWebAssemblyでアプリケーションを作る場合、ほぼ必ずファイルシステムAPIなどOSへのアクセスなどが発生します。

アプリケーションからOSを呼び出すAPIはOSに依存するため、OSを呼び出すWebAssemblyアプリケーションは基本的にそのOSでしか動かないOS依存のアプリケーションになってしまいます。

そこで登場したのが、WebAssemblyのアプリケーションに対してOSのシステムコールを抽象化することでOS依存をなくし、ポータブルなWebAssemblyアプリケーションを実現する業界標準仕様のAPI「WebAssembly System Interface」(WASI)です。

WASI対応のWebAssemblyアプリケーションを、WASI対応のWebAssemblyランタイム上で実行すれば、そのWebAssemlbyアプリケーションはOSにすることなく、WebブラウザでもWindowsやMacなどのデスクトップでも、Linuxなどのサーバサイドやエッジでも動くポータブルなもの(WebAssemblyバイナリ)となります。

Go言語がWASIに対応するWebAssemblyファイルを生成できるようになれば、WASI対応のアプリケーション開発を比較的容易に行えるプログラミング言語として重宝されることになりそうです。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
CPUを使わない新種のAI推論ハードウェアを開発するイスラエルのNeuRealityが8.4億円調達
人工知能・AI
2021-02-13 16:48
暗号資産取引やフィンテック企業で起こる不正を独自のアルゴリズムで見つけるSardine
IT関連
2022-02-12 20:35
OpenStack、25回目のリリース「Yoga」公開
IT関連
2022-04-01 02:52
Dockerの設定を大きく省力化する「Docker Init」コマンドが正式リリース。DockerfileやCompose設定ファイルなど自動生成
Docker
2024-02-09 13:29
ビル・ゲイツ氏、バイデン大統領との協力に意欲–コロナや気候変動などで
IT関連
2021-01-22 20:10
Kubernetes 1.21正式リリース。定期的な実行を可能にするCronjobsが正式版、IPv4/IPv6デュアルスタックがデフォルトで有効に
Docker / コンテナ / 仮想化
2021-04-12 22:00
アドビと専修大、デザイン思考を取り入れた大学カリキュラムを開発
IT関連
2022-04-05 00:43
プロスケーターのロブ・ディアデックらセレブが支援する向知性スナック食品会社Mindright
フードテック
2021-03-10 14:46
大阪・寝屋川市、スマホなどのSMSで納税催促
IT関連
2021-06-25 07:10
GitHub、「Copilot Workspace」テクニカルプレビュー版を提供–「Copilot」ネイティブの開発者環境
IT関連
2024-05-01 19:22
レッドハット社長が掲げた「ハイブリッドクラウドの25」とは何か
IT関連
2023-05-13 09:01
Reddit、Twitterのように任意のNFTをプロフィール画像に設定できる機能をテスト中
IT関連
2022-01-28 09:19
協調して動く球体ロボット群「FreeBOT」 くっついたり離れたり、転がったり壁を登ったり :Innovative Tech
トップニュース
2021-03-17 01:36
OpenAIがAPIを強化、関数呼び出し対応など
IT関連
2023-06-17 05:36