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
NEC、ネットワークインフラ建設業務のモダナイゼーションする新ソリューション
IT関連
2025-02-11 17:16
NTTぷららとNTTロジスコで個人情報約800万件が漏えいの恐れ
IT関連
2021-07-03 12:23
公道で走れる最大時速45kmの電動キックボード 乗って分かった魅力と課題 (1/3 ページ)
くわしく
2021-06-20 11:39
GitHub、1200台以上のMySQL 5.7を8.0へアップグレード。サービス無停止のまま成功させる
GitHub
2023-12-12 10:43
ファンケル、RPA導入で年間6700時間の余力創出–現場主体のロボット内製化を実現
IT関連
2023-07-19 05:34
富士フイルムとIBM、世界最大記録容量のテープストレージを開発
IT関連
2023-08-31 16:17
Nothingが新型ワイヤレスイヤフォン「Ear(1)」をついに公開、税込1万2650円で8月17日発売
ハードウェア
2021-07-29 23:28
ストライプ、銀行振込機能を追加–バーチャル口座の活用で消込作業などを自動化
IT関連
2022-04-16 19:34
NEC、ソートリーダーシップ活動を強化–「2030VISION」の実現へ
IT関連
2022-03-26 07:00
神戸市と渋谷区がNOROSI Startup Hubを連携して始動、ライトな起業文化を育てる官民連携プロジェクト
その他
2021-07-07 05:12
水出しならぬ「ミルク出し」コーヒーを簡単に 専用ポット、ハリオが発売
くらテク
2021-05-12 09:59
【コラム】注意、会社はあなたを見張っている
IT関連
2022-01-24 13:49
米アトランタ地区にT-Mobileとジョージア工科大学のタッグによる5Gインキュベーターが新設
その他
2021-02-20 17:18
AWSが「IAM Roles Anywhere」発表。一時的にAWSへのアクセス権をAWSの外側にあるワークロードに付与
AWS
2022-07-08 14:35