In: computer, programming, language.

WASM

WebAssembly (abbreviated Wasm) defines a portable binary-code format and a corresponding text format for executable programs as well as software interfaces for facilitating interactions between such programs and their host environment.
The main goal of WebAssembly is to enable high-performance applications on web pages, “but it does not make any Web-specific assumptions or provide Web-specific features, so it can be employed in other environments as well.”
It is an open standard and aims to support any language on any operating system, and in practice all of the most popular languages already have at least some level of support.

Articles & links

WebAssembly Weekly

A weekly newsletter for keeping on top of what’s new in the world of WebAssembly, with tutorials, examples, articles & more
https://wasmweekly.news

The 6 ways of optimizing WebAssembly

Posted January 26 2023
https://radu-matei.com/blog/six-ways-optimize-webassembly

A practical guide to WebAssembly memory

By Radu Matei, posted January 11 2021
https://radu-matei.com/blog/practical-guide-to-wasm-memory

Rust to WebAssembly the hard way

Rust to WebAssembly 101
Posted 2023-02-13
https://surma.dev/things/rust-to-webassembly

Performance of WebAssembly runtimes in 2023

By Frank Denis
https://00f.net/2023/01/04/webassembly-benchmark-2023

WebAssembly/ WASM

AssemblyScript

AssemblyScript is a TypeScript-based programming language that is optimized for, and statically compiled to WebAssembly.
https://assemblyscript.org
AssemblyScript class deep dive:
https://wasmbook.com/blog/AssemblyScriptClassDeepDive

Docker+Wasm

Wasm (short for WebAssembly) is a faster, lighter alternative to the Linux & Windows containers you’re using in Docker
https://docs.docker.com/desktop/wasm
Introducing the Docker+Wasm technical preview
https://docker.com/blog/docker-wasm-technical-preview

Emscripten

Complete compiler toolchain to WebAssembly, using LLVM, with a special focus on speed, size, and the Web platform
Compile your existing projects written in C or C++ - or any language that uses LLVM - to browsers, Node.js, or wasm runtimes
https://emscripten.org
Emscripting a C library to Wasm
https://web.dev/emscripting-a-c-library

Extism

The universal plug-in system
Run WebAssembly extensions inside your app
Use idiomatic Host SDKs for Go, Ruby, Python, Node, Rust, C, C++, OCaml, Haskell, PHP, Elixir/Erlang & more (others coming soon)
https://github.com/extism/extism

w2c2

Translates WebAssembly modules to C. Inspired by wabt’s wasm2c.
Implements the WebAssembly Core Specification 1.0 and bulk memory operations
Passes 99.9% of the WebAssembly core semantics test suite
https://github.com/turbolent/w2c2

Wasm2C

https://github.com/WebAssembly/wabt/tree/main/wasm2c
https://github.com/ziglang/zig/tree/master/stage1
https://ziglang.org/news/goodbye-cpp

WASM3

“Fastest” WebAssembly interpreter, and the most universal runtime
https://github.com/wasm3/wasm3
https://github.com/wasm3/pywasm3
https://twitter.com/wasm3_engine

WasmEdge

Bring the cloud-native and serverless application paradigms to Edge Computing
https://wasmedge.org
https://wasmedge.org/book/en

Wasmer

Run any code on any client, with WebAssembly and Wasmer
https://wasmer.io
Javascript WebAssembly packages by Wasmer
https://github.com/wasmerio/wasmer-js
WebAssembly runtime for Python
https://github.com/wasmerio/wasmer-python

Wasmtime

A fast and secure runtime for WebAssembly
https://wasmtime.dev
Python wasmtime
https://pypi.org/project/wasmtime

WebAssembly

WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine
Wasm is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications
https://github.com/WebAssembly
https://webassembly.org

×