[!WARNING] Deprecation Warning The wasmCloud Golang examples have been moved to the wasmCloud/go repo.
This folder and the examples in it will not be updated and will be removed after a new release of the
wash
CLI that depends on it.
This folder contains examples that can be run with wasmcloud which are written in Golang.
Most examples compile with TinyGo rather than the Golang compiler proper given that WebAssembly support landed in TinyGo first and is still slightly better supported there.
Example components built in Golang can be compiled similarly to any other wasmcloud project:
wash build
As WebAssembly is intended to be a "compilation target" for native Golang code, upstream work is underway to integrate and improve support for the various standards of WebAssembly.
Language | Core Modules (wasm32-unknown-unknown ) |
Preview 1 (wasm32-wasi-preview1 ) |
WASIP2 (wasm32-wasip2 ) |
---|---|---|---|
Golang | ✅ (GOOS=js ,GOARCH=wasm ) |
✅ (GOOS=wasip1 ) |
✅ (requires adapter) |
TinyGo | ✅ (-target=wasm ) |
✅ (-target=wasi ) |
✅ (requires adapter) |
Tiny Go WASI support is detailed on their website. Golang WASI preview 1 support was announced on the Golang blog
[!NOTE] Don't know what
wasm32-unknown-unknown
means versuswasm32-wasi-preview1
?
wasm32-unknown-unknown
is a compile target which deals in core WebAssembly modules (i.e. you're only given access to numbers at this level)wasm32-wasi-preview1
is a compile target that provides richer types, support for more higher level platform APIswasm32-wasip2
is the next generation compile target with much richer types, higher level APIs like async, streaming, the WIT IDL.In a sentence, WebAssembly functionality is layered, with
wasm32-unknown-unknown
being the most basic (only doing operations on numbers) andwasm32-wasip2
being the current most advanced.
To learn more about how wasmCloud works, check out the wasmCloud documentation.
To learn more WebAssembly ecosystem language support, check out the SIG Guest Languages Zulip group and the issue noting go
support.
Development on Golang support (along with Tinygo support) is stewarded by the Bytecode Alliance.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。