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
Java 16正式リリース。JavaアプリをWin/Mac/Linuxのインストール形式にするパッケージャ登場、OpenJDKソースコードがGitHubへ移行
Java
2021-03-18 01:52
AWS、暗号化メッセージングサービスのWickrを買収
IT関連
2021-06-28 17:36
過去の失敗経験を生かし切る–ベネッセHDの社内コンサルに聞く「DXの方法論」
IT関連
2023-07-11 15:24
対策ツールによる「復旧事例」公表でランサムウェア攻撃の抑止につなげよ
IT関連
2023-01-07 04:47
「PS5」大型アプデが年内に βテスト参加者募集
くらテク
2021-06-20 18:06
テンセント、大規模言語モデル「Hunyuan」を公開–中国国内向け
IT関連
2023-09-12 14:35
Blink Chargingが米国とカナダのGMのディーラーにEV充電器を供給へ
IT関連
2022-01-20 19:56
「青色LED生みの親」赤崎勇さん死去 2014年にノーベル物理学賞
社会とIT
2021-04-03 11:16
AWS、アプリケーション内できめ細かなアクセス制御を実現するポリシー言語「Ceder」と認可エンジンをオープンソースで公開
AWS
2023-05-15 12:29
ミネアポリス警察がGoogleにジョージ・フロイド氏抗議行動者特定のため個人データを要求
パブリック / ダイバーシティ
2021-02-09 08:38
AWS、生成AIの「Amazon Q」にこれから作るアプリを説明すると、適切なアーキテクチャのブループリントを提案してくれる新機能
AWS
2024-06-20 06:18
Azureを使ったクラウドネイティブ開発事例–マイクロソフトの取り組み
IT関連
2021-02-03 20:45
IBMとSAP、パートナーシップを拡大–顧客の生産性向上と革新を支援
IT関連
2024-05-15 19:22
M1 Mac、演算パワーを生かしたい物理モデリング音源なら万全か? :iOS音楽アプリプロデューサーがM1 Macを使ってみたら(1/2 ページ)
イラスト・デザイン
2021-02-11 15:05