# Wasm

- Page: https://shared.btbytes.com/p/wasm
- Date: 2022-11-29
- Tags: web, wasm

## About

- [Why WASM?](https://www.golem.cloud/post/why-wasm)
- [A WebAssembly Deep Dive 🔎 - How Wasm works under the hood - YouTube](https://www.youtube.com/watch?v=VGLnqkegX-g) by [Fermyon](https://www.fermyon.com) that provides wasm hosting [services](https://www.fermyon.com/cloud).
- [The JVM vs WebAssembly: An In Depth Comparative Analysis By Shivansh Vij - YouTube](https://www.youtube.com/watch?v=qmVG_JLLq40)

## Ecosystem

[WasmEdge](https://wasmedge.org/) is a lightweight webassembly runtime for cloud native, edge and decentralized applications. It can be used to power serverless apps, embedded functions, microservices, smart contracts, and IOT devices.

[Wasmer - The Universal WebAssembly Runtime](https://wasmer.io/) "run any code on any client" with webassembly and wasmer.

2023-05-30: [Announcing WASIX](https://wasmer.io/posts/announcing-wasix)

> WASIX is the long term stabilization and support of the existing WASI ABI _plus_additional non-invasive syscall extensions that complete the missing gaps sufficiently enough to enable real, practical and useful applications to be compiled and used **now**. It aims to speed up the ecosystem around WASI so that the Wasm’ification of code bases around the world can really start _**today!**_And it does so without any _breaking changes_ to `wasi_preview1`.

WASIX:

- It’s a **toolchain**:
    - [Rust](https://wasmer.io/posts/announcing-wasix#rust)
    - [C](https://wasmer.io/posts/announcing-wasix#ccpp) (upcoming support for Zig!)
    - AssemblyScript (expect upstream support soon!)
- It's a **specification**: [https://wasix.org/docs/api-reference](https://wasix.org/docs/api-reference)
- **Runtime** support: starting with Wasmer, but we expect more runtimes joining the initiative soon!
- Is fully runnable in **browsers**

## Projects using WASM

- [Pretzel](https://pretzelai.github.io/), [source](https://github.com/pretzelai/)


## Runtimes

[Chicory](https://chicory.dev/), a JVM native WebAssembly runtime, which allows you to do things like:

```java
WasmModule module = Parser.parse(new File("./factorial.wasm"));
Instance instance = Instance.builder(module).build();
```
