|
…
|
||
|---|---|---|
| .. | ||
| components | ||
| README.md | ||
README.md
Typescript Examples
This folder contains examples that can be run with wasmcloud which are written in Typescript.
While WebAssembly was initially developed as a Web-centered abstraction, work is underway to make WebAssembly usable and convenient from server-side Javascript.
Work is still ongoing, but the WebAssembly-for-Javascript effort is primarily driven forward by jco and componentize-js.
Building individual example components
Example components built in Typescript can be compiled similarly to any other wasmcloud project:
wash build
While Typescript is not yet officially supported by wash, wash's custom build_command support makes it possible to build Typescript projects to run on wasmcloud.
WebAssembly support
As WebAssembly is intended to be a "compilation target" for native Typescript 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) |
|---|---|---|---|
| Typescript | ✅ (WebAssembly.compile) |
✅ (jco transpile ...) |
✅ (requires adapter) |
[!NOTE] Don't know what
wasm32-unknown-unknownmeans versuswasm32-wasi-preview1?
wasm32-unknown-unknownis a compile target which deals in core WebAssembly modules (i.e. you're only given access to numbers at this level)wasm32-wasi-preview1is a compile target that provides richer types, support for more higher level platform APIswasm32-wasip2is 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-unknownbeing the most basic (only doing operations on numbers) andwasm32-wasip2being the current most advanced.
Want to learn more?
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.
Development on Typescript support is stewarded by the Bytecode Alliance.
Work on jco and componentize-js are done in the open, and you are welcome to try out the toolchain, contribute, and ask questions.