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