928 lines
40 KiB
HTML
928 lines
40 KiB
HTML
<h1 id="awesome-wasm-awesome">Awesome Wasm <a
|
||
href="https://awesome.re"><img src="https://awesome.re/badge.svg"
|
||
alt="Awesome" /></a></h1>
|
||
<p>Collection of awesome things regarding WebAssembly (wasm)
|
||
ecosystem.</p>
|
||
<p>Please read the <a href="CONTRIBUTING.md">contribution guidelines</a>
|
||
if you want to contribute.</p>
|
||
<h2 id="contents">Contents</h2>
|
||
<ul>
|
||
<li><a href="#general-resources">General Resources</a></li>
|
||
<li><a href="#online-playground">Online Playground</a></li>
|
||
<li><a href="#tutorials">Tutorials</a></li>
|
||
<li><a href="#compilers">Compilers</a></li>
|
||
<li><a href="#non-web-embeddings">Non-Web Embeddings</a></li>
|
||
<li><a href="#projects">Projects</a>
|
||
<ul>
|
||
<li><a href="#ai">AI</a></li>
|
||
<li><a href="#apache-server">Apache Server</a></li>
|
||
<li><a href="#web-frameworks-libraries">Web
|
||
frameworks-libraries</a></li>
|
||
<li><a href="#data-processing">Data processing</a></li>
|
||
<li><a href="#webgl">WebGL</a></li>
|
||
<li><a href="#webpack">webpack</a></li>
|
||
<li><a href="#browserify">Browserify</a></li>
|
||
<li><a href="#nodejs">Node.js</a></li>
|
||
<li><a href="#net">.NET</a></li>
|
||
<li><a href="#others">Others</a></li>
|
||
</ul></li>
|
||
<li><a href="#languages">Languages</a>
|
||
<ul>
|
||
<li><a href="#esoteric">Esoteric</a></li>
|
||
<li><a href="#forth">Forth</a></li>
|
||
<li><a href="#go">Go</a></li>
|
||
<li><a href="#javascript-family">JavaScript-family</a></li>
|
||
<li><a href="#kotlin">Kotlin</a></li>
|
||
<li><a href="#lua">Lua</a></li>
|
||
<li><a href="#ocaml">OCAML</a></li>
|
||
<li><a href="#python">Python</a></li>
|
||
<li><a href="#prolog">Prolog</a></li>
|
||
<li><a href="#rust">Rust</a></li>
|
||
<li><a href="#wasm-like">WASM-like</a></li>
|
||
<li><a href="#other">Other</a></li>
|
||
</ul></li>
|
||
<li><a href="#tools">Tools</a>
|
||
<ul>
|
||
<li><a href="#editor">Editor</a></li>
|
||
<li><a href="#kits">Kits</a></li>
|
||
</ul></li>
|
||
<li><a href="#gists">Gists</a></li>
|
||
<li><a href="#examples">Examples</a></li>
|
||
<li><a href="#benchmarks">Benchmarks</a></li>
|
||
<li><a href="#job-boards">Job Boards</a></li>
|
||
<li><a href="#articles">Articles</a></li>
|
||
<li><a href="#video">Video</a></li>
|
||
<li><a href="#slides">Slides</a></li>
|
||
<li><a href="#community">Community</a></li>
|
||
<li><a href="#books">Books</a></li>
|
||
<li><a href="#papers">Papers</a></li>
|
||
<li><a href="#demos">Demos</a></li>
|
||
<li><a href="#resources-in-other-languages">Resources in other
|
||
languages</a>
|
||
<ul>
|
||
<li><a href="#russian">Russian</a></li>
|
||
<li><a href="#simple-chinese">Simple Chinese</a></li>
|
||
<li><a href="#spanish">Spanish</a></li>
|
||
</ul></li>
|
||
</ul>
|
||
<h2 id="general-resources">General Resources</h2>
|
||
<ul>
|
||
<li><a href="http://webassembly.org/">Official Site</a></li>
|
||
<li><a href="https://github.com/webassembly">GitHub</a></li>
|
||
<li><a
|
||
href="https://developer.mozilla.org/en-US/docs/WebAssembly">WebAssembly
|
||
MDN</a></li>
|
||
<li><a href="https://en.wikipedia.org/wiki/WebAssembly">WebAssembly
|
||
Wikipedia</a></li>
|
||
<li><a href="https://webassembly.github.io/spec/">WebAssembly
|
||
Specification</a></li>
|
||
</ul>
|
||
<h2 id="online-playground">Online Playground</h2>
|
||
<ul>
|
||
<li><a href="https://mbebenita.github.io/WasmExplorer/">WebAssembly
|
||
Explorer</a></li>
|
||
<li><a href="https://wasmfiddle.com/">WasmFiddle</a></li>
|
||
<li><a href="https://github.com/MaxGraey/Assembleash">Assembleash -
|
||
WebAssembly and Typescript-like languages playground</a></li>
|
||
<li><a
|
||
href="https://cdn.rawgit.com/WebAssembly/wabt/fb986fbd/demo/wat2wasm/">Wat2Wasm</a></li>
|
||
<li><a
|
||
href="https://cdn.rawgit.com/WebAssembly/wabt/fb986fbd/demo/wasm2wat/">Wasm2Wat</a></li>
|
||
</ul>
|
||
<h2 id="tutorials">Tutorials</h2>
|
||
<ul>
|
||
<li><a
|
||
href="http://webassembly.org/getting-started/developers-guide/">Developer’s
|
||
Guide</a></li>
|
||
<li><a href="https://wasmbyexample.dev/">Wasmbyexample - Hands-On
|
||
Introduction Examples and Tutorials for Webassembly</a></li>
|
||
<li><a
|
||
href="https://awesome.red-badger.com/chriswhealy/introduction-to-web-assembly-text">Introduction
|
||
to WebAssembly Text (2021)</a></li>
|
||
<li><a
|
||
href="https://evilmartians.com/chronicles/hands-on-webassembly-try-the-basics">Hands-On
|
||
Webassembly: Try the Basics (2020)</a></li>
|
||
<li><a
|
||
href="https://platform.uno/blog/using-webassembly-modules-in-c/">Using
|
||
WebAssembly modules in C# (2020)</a></li>
|
||
<li><a
|
||
href="https://aralroca.com/blog/first-steps-webassembly-rust">First
|
||
steps with WebAssembly in Rust (2020)</a></li>
|
||
<li><a
|
||
href="https://cggallant.blogspot.com/2020/07/webassembly-threads-in-firefox.html">WebAssembly
|
||
threads in Firefox (2020)</a></li>
|
||
<li><a
|
||
href="https://cggallant.blogspot.com/2020/01/the-import-statement-with-emscripten.html">Using
|
||
the import statement with an Emscripten-generated module in Vue.js
|
||
(2020)</a></li>
|
||
<li><a
|
||
href="https://medium.com/@robaboukhalil/hit-the-ground-running-with-webassembly-56cf9b2fa35d">Hit
|
||
the Ground Running with WebAssembly (2019)</a></li>
|
||
<li><a
|
||
href="https://github.com/unoplatform/workshops/tree/master/uno-bootcamp">Uno
|
||
Platform Bootcamp - single-source WASM & Mobile app tutorial
|
||
(2019)</a></li>
|
||
<li><a
|
||
href="https://medium.com/@robaboukhalil/porting-games-to-the-web-with-webassembly-70d598e1a3ec?source=friends_link&sk=20c835664031227eae5690b8a12514f0">Porting
|
||
Games to the Web with WebAssembly (2019)</a></li>
|
||
<li><a
|
||
href="https://opensource.com/article/19/4/command-line-playgrounds-webassembly">Level
|
||
up Command-line Playgrounds with WebAssembly (2019)</a></li>
|
||
<li><a
|
||
href="https://codelabs.developers.google.com/codelabs/hour-chipmunk/index.html">WebAssembly
|
||
Physics and DOM objects (2018)</a></li>
|
||
<li><a
|
||
href="https://egghead.io/courses/introduction-to-webassembly">egghead.io:
|
||
Get Started Using WebAssembly (WASM)(2017)</a></li>
|
||
<li><a
|
||
href="https://hoverbear.org/2017/04/06/the-path-to-rust-on-the-web/">The
|
||
Path to Rust on the Web (2017)</a></li>
|
||
<li><a
|
||
href="http://blog.openbloc.fr/webassembly-first-steps/">WebAssembly 101:
|
||
a developer first steps (2017)</a></li>
|
||
<li><a
|
||
href="http://floooh.github.io/2017/02/22/emsc-html.html">Emscripten/HTML
|
||
Integration Tips (2017)</a></li>
|
||
<li><a
|
||
href="https://hackernoon.com/compiling-rust-to-webassembly-guide-411066a69fde">Compiling
|
||
Rust to WebAssembly Guide (2017)</a></li>
|
||
<li><a
|
||
href="https://hackernoon.com/how-to-get-a-performance-boost-using-webassembly-8844ec6dd665">How
|
||
to get a performance boost using WebAssembly (2017)</a></li>
|
||
<li><a
|
||
href="http://thecodebarbarian.com/getting-started-with-webassembly-in-node.js.html">Getting
|
||
Started With WebAssembly in Node.js (2017)</a></li>
|
||
<li><a
|
||
href="http://cultureofdevelopment.com/blog/build-your-first-thing-with-web-assembly/">Build
|
||
Your First Thing With WebAssembly (2016)</a></li>
|
||
<li><a
|
||
href="https://medium.com/@MadsSejersen/webassembly-the-missing-tutorial-95f8580b08ba">WebAssembly — The
|
||
missing tutorial (2016)</a></li>
|
||
<li><a
|
||
href="https://tutorials.technology/tutorials/11-webassembly-initial-steps-tutorial.html">Webassembly
|
||
initial steps tutorial (2016)</a></li>
|
||
<li><a href="https://www.webassemblyman.com">WebAssemblyMan – man page
|
||
for WebAssembly.</a></li>
|
||
</ul>
|
||
<h2 id="compilers">Compilers</h2>
|
||
<ul>
|
||
<li><a href="http://kripken.github.io/emscripten-site/">Emscripten -
|
||
LLVM-based project that compiles C and C++</a></li>
|
||
<li><a href="https://github.com/WebAssembly/binaryen">Binaryen -
|
||
Binaryen is a compiler and toolchain infrastructure library for
|
||
WebAssembly, written in C++</a></li>
|
||
<li><a href="https://blog.rust-lang.org/2016/12/22/Rust-1.14.html">Rust
|
||
- A safe, concurrent, practical language</a></li>
|
||
<li><a href="https://github.com/kg/ilwasm">ilwasm - CIL to WebAssembly
|
||
compiler</a></li>
|
||
<li><a
|
||
href="https://sourceware.org/ml/binutils/2017-03/msg00044.html">WebAssembly
|
||
for the GNU Toolchain</a></li>
|
||
<li><a
|
||
href="https://faust.grame.fr/community/news/index.html#faust-webassembly-backend">faust2
|
||
- Functional programming language for signal processing and sound
|
||
synthesis</a></li>
|
||
<li><a href="https://github.com/tweag/asterius">Asterius - A Haskell to
|
||
WebAssembly compiler</a></li>
|
||
<li><a
|
||
href="http://ppci.readthedocs.io/en/latest/reference/wasm.html">PPCI.wasm
|
||
- PPCI Can compile wasm to machine code and run it in the Python
|
||
process</a></li>
|
||
<li><a href="https://github.com/aykevl/tinygo">TinyGo - Go for embedded
|
||
devices and WebAssembly. Creates very small .wasm files.</a></li>
|
||
<li><a href="https://github.com/mirkosertic/Bytecoder">Bytecoder - A
|
||
Rich Domain Model for Java Bytecode and Framework to interpret and
|
||
transpile it to other languages such as JavaScript, OpenCL or
|
||
WebAssembly</a></li>
|
||
<li><a
|
||
href="https://github.com/AssemblyScript/assemblyscript">AssemblyScript -
|
||
Definitely not a TypeScript to WebAssembly compiler</a></li>
|
||
</ul>
|
||
<h2 id="non-web-embeddings">Non-Web Embeddings</h2>
|
||
<ul>
|
||
<li><a href="https://wasi.dev/">WASI - The WebAssembly System
|
||
Interface</a></li>
|
||
<li><a href="https://github.com/wasm3/wasm3">wasm3 - The fastest
|
||
WebAssembly interpreter (x86, x64, ARM, MIPS, Xtensa)</a></li>
|
||
<li><a href="https://github.com/wasmx/fizzy">fizzy - Fast,
|
||
deterministic, and pedantic WebAssembly interpreter written in clean
|
||
C++17</a></li>
|
||
<li><a
|
||
href="https://github.com/bytecodealliance/wasm-micro-runtime">wamr -
|
||
WebAssembly Micro Runtime (WAMR) is an AOT/JIT/interpreter focusing on
|
||
small footprint</a></li>
|
||
<li><a href="https://github.com/kanaka/wac">wac - WebAssembly in C
|
||
(x86)</a></li>
|
||
<li><a href="https://github.com/cretz/asmble">Asmble - WebAssembly on
|
||
the JVM</a></li>
|
||
<li><a href="https://github.com/piranna/wasmachine">wasmachine -
|
||
WebAssembly in a FPGA</a></li>
|
||
<li><a href="https://github.com/Xe/olin">Olin - WebAssembly on the
|
||
server</a></li>
|
||
<li><a href="https://github.com/wasmerio/wasmer">Wasmer - Standalone JIT
|
||
WebAssembly Runtime</a>
|
||
<ul>
|
||
<li><a href="https://github.com/wasmerio/go-ext-wasm">Wasmer for
|
||
Go</a></li>
|
||
<li><a href="https://github.com/wasmerio/python-ext-wasm">Wasmer for
|
||
Python</a></li>
|
||
<li><a href="https://github.com/wasmerio/php-ext-wasm">Wasmer for
|
||
PHP</a></li>
|
||
<li><a href="https://github.com/wasmerio/ruby-ext-wasm">Wasmer for
|
||
Ruby</a></li>
|
||
<li><a href="https://github.com/wasmerio/postgres-ext-wasm">Wasmer for
|
||
Postgres</a></li>
|
||
</ul></li>
|
||
<li><a href="https://github.com/kanaka/warpy">warpy - WebAssembly in
|
||
RPython</a></li>
|
||
<li><a href="https://github.com/poemm/pywebassembly">pywebassembly -
|
||
WebAssembly interpreter written in pure Python</a></li>
|
||
<li><a href="https://github.com/ethereum/py-wasm">py-wasm - WebAssembly
|
||
interpreter written in pure Python</a></li>
|
||
<li><a href="https://github.com/mohanson/pywasm">pywasm - WebAssembly
|
||
interpreter written in pure Python.</a></li>
|
||
<li><a href="https://github.com/webassembly/wabt">wabt - WebAssembly
|
||
toolkit and interpreter written in C++</a></li>
|
||
<li><a href="https://github.com/webassembly/binaryen">binaryen -
|
||
WebAssembly toolkit and interpreter written in C++</a></li>
|
||
<li><a href="https://github.com/go-interpreter/wagon">wagon -
|
||
WebAssembly interpter written in Go</a></li>
|
||
<li><a href="https://github.com/CraneStation/wasmtime">wasmtime -
|
||
Standalone WebAssembly Runtime</a></li>
|
||
<li><a href="https://github.com/embly/embly">embly - A serverless web
|
||
application framework for collaboration and scale</a></li>
|
||
<li><a href="https://github.com/second-state/SSVM">SSVM - WebAssembly
|
||
Virtual Machine for AI and Blockchain applications</a></li>
|
||
<li><a href="https://github.com/trailofbits/manticore">Manticore -
|
||
Symbolic execution engine with support for WebAssembly</a></li>
|
||
<li><a href="https://github.com/WAVM/WAVM">WAVM - WebAssembly virtual
|
||
machine, designed for use in non-web applications</a></li>
|
||
<li><a href="https://github.com/gballet/windtrap">windtrap - A WASM VM
|
||
written in Elixir</a></li>
|
||
<li><a href="https://github.com/extism/extism">Extism - the universal
|
||
plug-in system to make your software programmable</a></li>
|
||
</ul>
|
||
<h2 id="projects">Projects</h2>
|
||
<h3 id="ai">AI</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/tantaraio/voy">Voy - A WASM vector
|
||
similarity search engine written in Rust</a></li>
|
||
</ul>
|
||
<h3 id="apache-server">Apache Server</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/vmware-labs/mod_wasm">mod_wasm - An
|
||
extension module for the Apache HTTP Server that enables the usage of
|
||
WebAssembly (Wasm).</a></li>
|
||
</ul>
|
||
<h3 id="web-frameworks-libraries">Web frameworks-libraries</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/lume/asdom">asdom - DOM bindings for
|
||
AssemblyScript, write DOM code just like in TypeScript, but compiled to
|
||
WebAssembly, by LUME</a></li>
|
||
<li><a href="https://github.com/mbasso/asm-dom">asm-dom - A minimal
|
||
WebAssembly virtual DOM to build C++ SPA</a></li>
|
||
<li><a
|
||
href="https://dotnet.microsoft.com/apps/aspnet/web-apps/client">Blazor -
|
||
Microsoft’s web UI framework using C#/Razor and HTML, running
|
||
client-side via WebAssembly</a></li>
|
||
<li><a href="https://github.com/DenisKolodin/yew">Yew - Rust framework
|
||
for making client web apps</a></li>
|
||
<li><a href="https://github.com/jpmorganchase/perspective">Perspective -
|
||
Streaming pivot visualization via WebAssembly</a></li>
|
||
<li><a href="https://github.com/mfrachet/go-vdom-wasm">go-vdom-wasm -
|
||
Webassembly VDOM to create web application using
|
||
Golang(experimental)</a></li>
|
||
<li><a href="https://seed-rs.org/">seed - A Rust framework for creating
|
||
web apps</a></li>
|
||
<li><a href="https://www.vugu.org/">Vugu - A modern UI library for
|
||
Go+WebAssembly</a></li>
|
||
<li><a href="https://vecty.io">Vecty - Lets you build responsive and
|
||
dynamic web frontends in Go using WebAssembly</a></li>
|
||
<li><a href="https://github.com/lastmjs/zwitterion">Zwitterion - A web
|
||
dev server that lets you import anything*</a></li>
|
||
</ul>
|
||
<h3 id="data-processing">Data processing</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/fiatjaf/jq-web">jq-web - the JSON
|
||
processing tool jq ported to the web with Emscripten</a></li>
|
||
</ul>
|
||
<h3 id="webgl">WebGL</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/kripken/ammo.js">ammo.js - direct port
|
||
of the Bullet physics engine to JavaScript using Emscripten</a></li>
|
||
<li><a href="https://github.com/lume/glas">glas - Web<strong>GL</strong>
|
||
in WebAssembly with <strong>A</strong>ssembly<strong>S</strong>cript, by
|
||
LUME</a></li>
|
||
<li><a href="https://github.com/leefsmp/Particle-System">Particle System
|
||
- an experiment designed to benchmark web technologies: ES6, Emscripten
|
||
and Web Assembly</a></li>
|
||
<li><a href="https://floooh.github.io/oryol/">Oryol - a small, portable
|
||
3D coding framework written in C++</a></li>
|
||
</ul>
|
||
<h3 id="webpack">webpack</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/ballercat/wasm-loader">wasm-loader -
|
||
WASM webpack loader</a></li>
|
||
<li><a
|
||
href="https://github.com/ClickSimply/cpp-wasm-loader">cpp-wasm-loader -
|
||
C/C++ to WASM Webpack loader optimized for small bundle sizes</a></li>
|
||
</ul>
|
||
<h3 id="browserify">Browserify</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/browserify/rustify">rustify - Rust
|
||
WebAssembly transform for Browserify</a></li>
|
||
</ul>
|
||
<h3 id="node.js">Node.js</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/dcodeIO/webassembly">webassembly - A
|
||
minimal toolkit and runtime to produce and run WebAssembly
|
||
modules.</a></li>
|
||
<li><a href="https://github.com/ashleygwilliams/wasm-pack">wasm-pack -
|
||
pack up the wasm and publish it to npm!</a></li>
|
||
<li><a href="https://github.com/mfrachet/go-wasm-cli">go-wasm-cli -
|
||
Minimalistic cli to create and run (with hot reload) Go application
|
||
targeting WASM</a></li>
|
||
<li><a href="https://github.com/raphamorim/xwasm">xwasm - WebAssembly
|
||
Packager and WASM tooling for modern frontend</a></li>
|
||
</ul>
|
||
<h3 id="net">.NET</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/nventive/Uno">Uno Platform - An
|
||
implementation of Microsoft’s UWP APIs for
|
||
iOS/Android/WebAssembly/Linux/macOS, using C#/XAML on top of
|
||
mono-wasm</a></li>
|
||
<li><a href="https://github.com/praeclarum/Ooui">Ooui.Wasm - A
|
||
Xamarin.Forms backend for WebAssembly, using C#/XAML on top of
|
||
mono-wasm</a></li>
|
||
</ul>
|
||
<h3 id="others">Others</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/shamadee/wasm-init">wasm-init - Work
|
||
environment and code generator for WebAssembly projects</a></li>
|
||
<li><a href="https://github.com/athre0z/wasm">wasm - Python WebAssembly
|
||
decoder & disassembler library</a></li>
|
||
<li><a href="https://github.com/dmlc/mxnet.js/">MXnet.js - ASM.js build
|
||
of MXNet, deep learning (neural nets and so) library</a></li>
|
||
<li><a href="https://floooh.github.io/virtualkc/index_wasm.html">YAKC -
|
||
a multi-system 8-bit emulator written in C++</a></li>
|
||
<li><a href="https://github.com/becavalier/eufa">Eufa - a high efficient
|
||
utility functions library written in webassembly</a></li>
|
||
<li><a href="https://github.com/antelle/argon2-browser">Argon2 in
|
||
browser - Argon2 library compiled for browser runtime</a></li>
|
||
<li><a href="https://github.com/kwonoj/cld3-asm">cld3-asm - Wasm based
|
||
JS binding for Google compact language detector 3</a></li>
|
||
<li><a href="https://github.com/kwonoj/hunspell-asm">hunspell-asm - Wasm
|
||
based JS binding for Hunspell spellchecker</a></li>
|
||
<li><a href="https://github.com/alexcrichton/wasm-bindgen">wasm-bindgen
|
||
- Interoperating JS and Rust code</a></li>
|
||
<li><a href="https://github.com/ewasm">ewasm - Ethereum flavored
|
||
WebAssembly</a></li>
|
||
<li><a href="https://github.com/GoogleChromeLabs/webm-wasm">webm-wasm -
|
||
Create webm videos in JavaScript via WebAssembly</a></li>
|
||
<li><a href="https://github.com/jussiniinikoski/wasm-pdf">wasm-pdf –
|
||
Generate PDF files with JavaScript/WASM</a></li>
|
||
<li><a href="https://github.com/talentlessguy/go-web-app">go-web-app –
|
||
Quickly setup Go + WebAssembly frontend apps</a></li>
|
||
<li><a href="https://gotemplate.io/">gotemplate.io – Quicky test and
|
||
visualize your Go templates live</a></li>
|
||
<li><a href="https://github.com/sola-st/WasmBench">WasmBench - A large
|
||
dataset of real-world WebAssembly binaries, collected from the Web,
|
||
GitHub, NPM and more</a></li>
|
||
<li><a href="https://ddddddo.github.io/gtree/">gtree - Web app that
|
||
converts from Markdown to tree using WebAssembly</a></li>
|
||
<li><a href="https://github.com/eunomia-bpf/wasm-bpf">wasm-bpf - A
|
||
WebAssembly eBPF library, toolchain and runtime to help you build eBPF
|
||
programs to Wasm and run in kernel.</a></li>
|
||
<li><a href="https://github.com/originjs/crypto-js-wasm">crypto-js-wasm
|
||
- An alternate to crypto-js implemented with WebAssembly and
|
||
ESM</a></li>
|
||
<li><a href="https://github.com/hullarb/ssheasy">ssheasy - An online ssh
|
||
and sft client</a></li>
|
||
</ul>
|
||
<h2 id="languages">Languages</h2>
|
||
<h3 id="esoteric">Esoteric</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/serprex/befunge">funge.js - A Befunge
|
||
JIT</a></li>
|
||
</ul>
|
||
<h3 id="forth">Forth</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/remko/waforth">WAForth - Bootstrapping
|
||
Dynamic Forth Interpreter/Compiler for & in WebAssembly</a></li>
|
||
</ul>
|
||
<h3 id="go">Go</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/golang/go/wiki/WebAssembly">Go - Go
|
||
programming language WebAssembly support</a></li>
|
||
<li><a
|
||
href="https://www.sitepen.com/blog/compiling-go-to-webassembly/">Compiling
|
||
Go to WebAssembly</a></li>
|
||
<li><a href="https://gitlab.com/AndrusGerman/vuego">VueGo - WebAssembly
|
||
Vue.js wrapper written in Go</a></li>
|
||
</ul>
|
||
<h3 id="javascript-family">JavaScript-family</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/AssemblyScript/assemblyscript">AssemblyScript -
|
||
A subset of TypeScript that compiles to WebAssembly</a></li>
|
||
<li><a
|
||
href="https://www.sitepen.com/blog/getting-started-with-assemblyscript/">Getting
|
||
Started with AssemblyScript</a></li>
|
||
<li><a href="https://github.com/01alchemist/TurboScript">TurboScript - A
|
||
TypeScript-like language that compiles to asm.js and WebAssembly
|
||
(unmaintained)</a></li>
|
||
<li><a href="https://github.com/MichaReiser/speedy.js">speedy.js -
|
||
Accelerate JavaScript Applications by Compiling to WebAssembly
|
||
(unmaintained)</a></li>
|
||
</ul>
|
||
<h3 id="kotlin">Kotlin</h3>
|
||
<ul>
|
||
<li><a href="https://kotl.in/wasm">Kotlin/Wasm (Kotlin
|
||
WebAssembly)</a></li>
|
||
</ul>
|
||
<h3 id="lua">Lua</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/vvanders/wasm_lua">wasm_lua - Lua VM
|
||
running in a WASM environment</a></li>
|
||
<li><a href="https://github.com/ceifa/wasmoon">wasmoon - a high level
|
||
Lua VM with JS bindings</a></li>
|
||
</ul>
|
||
<h3 id="ocaml">OCAML</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/sebmarkbage/ocamlrun-wasm">ocamlrun-wasm
|
||
- OCaml Bytecode Interpreter in WASM</a></li>
|
||
<li><a href="https://github.com/remixlabs/wasicaml/">wasicaml -
|
||
Translate OCaml Bytecode to WASM</a></li>
|
||
</ul>
|
||
<h3 id="python">Python</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/iodide-project/pyodide">Pyodide - The
|
||
Python scientific stack running in the browser</a></li>
|
||
<li><a href="https://github.com/pyscript/">PyScript - Run Python Code
|
||
and the scientific stack in the browser</a></li>
|
||
<li><a href="https://python-wasm.cocalc.com/">python-wasm - WebAssembly
|
||
CPython for Node.js and the browser built using Zig (no
|
||
emscripten)</a></li>
|
||
<li><a href="https://github.com/almarklein/rocket_rust_py/">Rocket game
|
||
- Rocket, written in Rust, compiled to WASM, running in Python</a>
|
||
(using <a href="http://ppci.readthedocs.io">PPCI</a>)</li>
|
||
</ul>
|
||
<h3 id="prolog">Prolog</h3>
|
||
<ul>
|
||
<li><a href="https://ciao-lang.org/playground/">Ciao Prolog Playground
|
||
(WASM)</a></li>
|
||
</ul>
|
||
<h3 id="rust">Rust</h3>
|
||
<ul>
|
||
<li><a href="https://davidmcneil.github.io/the-rusty-web/">Rusty
|
||
Web</a></li>
|
||
<li><a href="https://github.com/paritytech/parity-wasm">parity-wasm -
|
||
WebAssembly serialization/deserialization library in pure Rust</a></li>
|
||
<li><a href="https://github.com/paritytech/wasmi">wasmi - WebAssembly
|
||
interpreter in pure Rust</a></li>
|
||
<li><a
|
||
href="https://github.com/rust-unofficial/awesome-rust">awesome-rust</a>
|
||
(<em>has scattered references to targeting WASM</em>)</li>
|
||
<li><a href="https://github.com/ruffle-rs/ruffle">Ruffle - Adobe Flash
|
||
Player emulator written in the Rust</a></li>
|
||
</ul>
|
||
<h3 id="wasm-like">WASM-like</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/tmcw/wah">wah - a slightly higher-level
|
||
language superset of webassembly</a></li>
|
||
<li><a href="https://github.com/ballercat/walt">Walt - Alternative
|
||
Syntax for WebAssembly</a></li>
|
||
<li><a href="https://github.com/kanaka/wam">wam - Superset of wast
|
||
syntax that is more convenient for humans to write directly</a></li>
|
||
</ul>
|
||
<h3 id="other">Other</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/lys-lang/lys">Lys - a functional
|
||
language that compiles to WebAssembly</a></li>
|
||
<li><a href="https://github.com/never-lang/never">Never - statically
|
||
typed, embeddable functional programming language</a></li>
|
||
</ul>
|
||
<h2 id="tools">Tools</h2>
|
||
<h3 id="editor">Editor</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/rhysd/vim-wasm">vim-wasm - WebAssembly
|
||
filetype support for Vim</a></li>
|
||
<li><a
|
||
href="https://marketplace.visualstudio.com/items?itemName=ukyo.wast">vscode
|
||
wast - WebAssembly(S-expression) support</a></li>
|
||
<li><a href="https://atom.io/packages/language-wast">Atom
|
||
language-wast</a></li>
|
||
<li><a
|
||
href="https://marketplace.visualstudio.com/items?itemName=dtsvet.vscode-wasm">vscode-wasm
|
||
- WebAssembly toolkit for vscode</a></li>
|
||
</ul>
|
||
<h3 id="kits">Kits</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/WebAssembly/wabt">WABT - A suite of
|
||
tools that help working with WASM binary files</a></li>
|
||
<li><a
|
||
href="https://github.com/mafintosh/webassembly-binary-toolkit">webassembly-binary-toolkit
|
||
- The WABT tools installable as an npm package</a></li>
|
||
</ul>
|
||
<h2 id="gists">Gists</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://gist.github.com/kripken/59c67556dc03bb6d57052fedef1e61ab">Standalone
|
||
WebAssembly Example</a></li>
|
||
<li><a
|
||
href="https://gist.github.com/yurydelendik/4eeff8248aeb14ce763e">Using
|
||
WebAssembly in LLVM</a></li>
|
||
<li><a
|
||
href="https://gist.github.com/cure53/f4581cee76d2445d8bd91f03d4fa7d3b">Calling
|
||
alert from WebAssembly (WASM)</a></li>
|
||
</ul>
|
||
<h2 id="examples">Examples</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://platform.uno/a-piece-of-windows-10-is-now-running-on-webassembly-natively-on-ios-and-android/">The
|
||
Windows 10 calculator running in WebAssembly</a></li>
|
||
<li><a
|
||
href="https://github.com/mdn/webassembly-examples">webassembly-examples</a></li>
|
||
<li><a
|
||
href="https://www.hellorust.com/demos/factorial/index.html">Factorial in
|
||
WebAssembly</a></li>
|
||
<li><a
|
||
href="https://github.com/sessamekesh/wasm-3d-animation-demo">WebAssembly
|
||
vs. JavaScript Animation Demo</a></li>
|
||
<li><a href="https://github.com/shamadee/web-dsp">Web DSP</a></li>
|
||
<li><a href="https://github.com/bzar/wasm-intro">wasm-intro - Tiny
|
||
WebAssembly Examples with LLVM/clang and C</a></li>
|
||
<li><a
|
||
href="https://github.com/reklatsmasters/webassembly-examples">webassembly-examples
|
||
- From Simple To Complex.</a></li>
|
||
<li><a
|
||
href="https://github.com/ColinEberhardt/d3-wasm-force/blob/master/README.md">D3
|
||
force layout with WebAssembly</a></li>
|
||
<li><a href="https://github.com/torch2424/wasmBoy">wasmBoy - Gameboy
|
||
Emulator Library written in Web Assembly using AssemblyScript</a></li>
|
||
<li><a
|
||
href="https://github.com/lukka/CppOpenGLWebAssemblyCMake">CppOpenGLWebAssemblyCMake
|
||
- C++/OpenGL/OpenAL/GLFW/GLM based app built with CMake to native or
|
||
WebAssembly</a></li>
|
||
<li><a href="https://github.com/jakedeichert/wasm-astar">WebAssembly A*
|
||
Pathfinding</a></li>
|
||
<li><a href="https://github.com/ragingwind/wasm-hnpwa">HackerNews PWA
|
||
with wasm-bindgen</a></li>
|
||
<li><a href="https://tour.tidb.io/">TiDB playground - writing SQL in an
|
||
in-browser golang database in WebAssembly</a></li>
|
||
<li><a href="https://madewithwebassembly.com/">Made With Webassembly -
|
||
Showcase of Awesome Production Applications, Side Projects, and Use
|
||
Cases Made With Webassembly</a></li>
|
||
<li><a
|
||
href="https://github.com/XD-DENG/handytools-go-webassembly">HandyTools -
|
||
A tool providing features like base64 encoding/decoding, Unix time
|
||
conversion, etc. Written in Go + WebAssembly</a></li>
|
||
<li><a href="https://aurium.gitlab.io/wasm-heatmap/">WAsm Heatmap -
|
||
Creates a heatmap layer for Leaflet.js with
|
||
Go+WebAssembly+WebWorkers</a></li>
|
||
<li><a href="https://modfy.video/">Modfy - Wasm Video
|
||
Transcoder</a></li>
|
||
<li><a href="https://github.com/raphamorim/gameboy">Gameboy emulator
|
||
written in Rust and compiled to WebAssembly</a></li>
|
||
<li><a href="https://github.com/joamag/boytacean">Boytacean - A fast
|
||
Game Boy Emulator written in Rust and running in the Browser using
|
||
WebAssembly</a></li>
|
||
</ul>
|
||
<h2 id="benchmarks">Benchmarks</h2>
|
||
<ul>
|
||
<li><a href="https://d2jta7o2zej4pf.cloudfront.net/">WebAssembly Video
|
||
Editor</a></li>
|
||
<li><a
|
||
href="http://aws-website-webassemblyskeletalanimation-ffaza.s3-website-us-east-1.amazonaws.com/">3D
|
||
skeletal animation system</a></li>
|
||
<li><a
|
||
href="http://kripken.github.io/ammo.js/examples/webgl_demo/ammo.html">Cubes
|
||
JS</a> - <a
|
||
href="http://kripken.github.com/ammo.js/examples/webgl_demo/ammo.wasm.html">Cubes
|
||
(WebAssembly)</a></li>
|
||
<li><a
|
||
href="https://takahirox.github.io/WebAssembly-benchmark/">JavaScript vs
|
||
WebAssembly easy benchmark</a></li>
|
||
<li><a
|
||
href="https://medium.com/samsung-internet-dev/performance-testing-web-assembly-vs-javascript-e07506fd5875">Performance
|
||
Testing Web Assembly vs JavaScript</a></li>
|
||
<li><a
|
||
href="https://pspdfkit.com/blog/2018/a-real-world-webassembly-benchmark/">A
|
||
Real-World WebAssembly Benchmark by PSPDFKit</a></li>
|
||
<li><a href="https://www.pdftron.com/blog/wasm/wasm-vs-pnacl/">Wasm
|
||
vs. PNaCl Performance Benchmark by PDFTron</a></li>
|
||
<li><a href="https://originjs.org/WASM-benchmark/">JavaScript vs
|
||
WebAssembly running in Browser/Nodejs</a></li>
|
||
</ul>
|
||
<h2 id="job-boards">Job Boards</h2>
|
||
<ul>
|
||
<li><a href="https://webassemblyjobs.com">WebAssembly Jobs</a></li>
|
||
</ul>
|
||
<h2 id="articles">Articles</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://platform.uno/blog/safari-16-4-support-for-webassembly-fixed-width-simd-how-to-use-it-with-c/">WebAssembly
|
||
Fixed-Width SIMD from C# (2023)</a></li>
|
||
<li><a
|
||
href="https://medium.com/@robaboukhalil/webassembly-and-simd-7a7daa4f2ecd">WebAssembly
|
||
and SIMD: A Match Made in the Browser (2020)</a></li>
|
||
<li><a
|
||
href="https://medium.com/ebaytech/webassembly-at-ebay-a-real-world-use-case-ef888f38b537">WebAssembly
|
||
at eBay: A Real-World Use Case (2019)</a></li>
|
||
<li><a
|
||
href="https://www.smashingmagazine.com/2019/04/webassembly-speed-web-app/">How
|
||
We Used WebAssembly To Speed Up Our Web App By 20X (Case Study)
|
||
(2019)</a></li>
|
||
<li><a
|
||
href="https://medium.com/@didil/practice-your-go-webassembly-with-a-game-7195dabbfc44">Practice
|
||
your Go WebAssembly with a Game (2019)</a></li>
|
||
<li><a
|
||
href="https://medium.com/@martinolsansky/webassembly-with-golang-is-fun-b243c0e34f02">The
|
||
world’s easiest introduction to WebAssembly with Golang (2019)</a></li>
|
||
<li><a href="https://medium.com/dfinity/why-webassembly-f21967076e4">Why
|
||
WebAssembly? (2018)</a></li>
|
||
<li><a
|
||
href="http://blog.scottlogic.com/2018/04/26/webassembly-by-hand.html">Writing
|
||
WebAssembly By Hand (2018)</a></li>
|
||
<li><a href="http://www.blacktm.com/blog/ruby-on-webassembly">Ruby on
|
||
WebAssembly (2018)</a></li>
|
||
<li><a
|
||
href="https://pspdfkit.com/blog/2018/optimize-webassembly-startup-performance/">Optimizing
|
||
WebAssembly Startup Time - 4 simple yet effective solutions to reduce
|
||
load time. (2018)</a></li>
|
||
<li><a
|
||
href="https://pspdfkit.com/blog/2017/webassembly-a-new-hope/">WebAssembly:
|
||
A New Hope (2017)</a></li>
|
||
<li><a
|
||
href="https://hacks.mozilla.org/2017/07/creating-a-webassembly-module-instance-with-javascript/">Creating
|
||
a WebAssembly module instance with JavaScript (2017)</a></li>
|
||
<li><a
|
||
href="https://hacks.mozilla.org/2017/07/memory-in-webassembly-and-why-its-safer-than-you-think/">Memory
|
||
in WebAssembly (and why it’s safer than you think) (2017)</a></li>
|
||
<li><a
|
||
href="https://hacks.mozilla.org/2017/07/webassembly-table-imports-what-are-they/">WebAssembly
|
||
table imports… what are they? (2017)</a></li>
|
||
<li><a
|
||
href="http://floooh.github.io/2017/06/09/webassembly-demystified.html">WebAssembly
|
||
Demystified (2017)</a></li>
|
||
<li><a
|
||
href="https://hacks.mozilla.org/2017/02/a-cartoon-intro-to-webassembly/">A
|
||
cartoon intro to WebAssembly (2017)</a></li>
|
||
<li><a
|
||
href="https://hacks.mozilla.org/2017/02/creating-and-working-with-webassembly-modules/">Creating
|
||
and working with WebAssembly modules (2017)</a></li>
|
||
<li><a
|
||
href="https://hacks.mozilla.org/2017/02/what-makes-webassembly-fast/">What
|
||
makes WebAssembly fast? (2017)</a></li>
|
||
<li><a
|
||
href="https://hacks.mozilla.org/2017/02/where-is-webassembly-now-and-whats-next/">Where
|
||
is WebAssembly now and what’s next? (2017)</a></li>
|
||
<li><a
|
||
href="https://hacks.mozilla.org/2017/03/web-games-platform-newest-developments/">Web
|
||
Games Platform: Newest Developments (2017)</a></li>
|
||
<li><a
|
||
href="https://hacks.mozilla.org/2017/03/why-webassembly-is-faster-than-asm-js/">Why
|
||
WebAssembly is Faster Than asm.js (2017)</a></li>
|
||
<li><a
|
||
href="https://hacks.mozilla.org/2017/03/firefox-52-introducing-web-assembly-css-grid-and-the-grid-inspector/">Firefox
|
||
52: Introducing Web Assembly, CSS Grid and the Grid Inspector
|
||
(2017)</a></li>
|
||
<li><a
|
||
href="https://hacks.mozilla.org/2017/03/previewing-the-webassembly-explorer/">Previewing
|
||
the WebAssembly Explorer (2017)</a></li>
|
||
<li><a
|
||
href="https://medium.com/mozilla-tech/why-webassembly-is-a-game-changer-for-the-web-and-a-source-of-pride-for-mozilla-and-firefox-dda80e4c43cb">Why
|
||
WebAssembly is a game changer for the web — and a source of pride for
|
||
Mozilla and Firefox (2017)</a></li>
|
||
<li><a href="https://rsms.me/wasm-intro">Introduction to WebAssembly
|
||
(2017)</a></li>
|
||
<li><a
|
||
href="https://medium.com/javascript-scene/what-is-webassembly-the-dawn-of-a-new-era-61256ec5a8f6">What
|
||
is WebAssembly? (2015)</a></li>
|
||
<li><a
|
||
href="https://auth0.com/blog/7-things-you-should-know-about-web-assembly/">7
|
||
Things You Should Know About WebAssembly (2015)</a></li>
|
||
<li><a href="http://2ality.com/2015/06/web-assembly.html">WebAssembly: a
|
||
binary format for the web (2015)</a></li>
|
||
<li><a
|
||
href="https://hacks.mozilla.org/2015/12/compiling-to-webassembly-its-happening/">Compiling
|
||
to WebAssembly: It’s Happening! (2015)</a></li>
|
||
<li><a
|
||
href="https://www.sitepoint.com/future-programming-webassembly-life-after-javascript/">The
|
||
Future of Programming: WebAssembly & Life After JavaScript
|
||
(2015)</a></li>
|
||
<li><a href="https://byrnemluke.com/posts/webassembly">WebAssembly
|
||
Everywhere</a></li>
|
||
</ul>
|
||
<h2 id="video">Video</h2>
|
||
<ul>
|
||
<li><a href="https://www.youtube.com/watch?v=eYekV2Do0YU">The Complete
|
||
WebAssembly Course - From Beginner to Advanced! (2024-01)</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=fvkIQfRZ-Y0">What is
|
||
WebAssembly? By Some of its Creators (2019-08)</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=o-2PLhMVBYU">Level up Your
|
||
Web Apps with WebAssembly (PerfMatters Conference 2019-04)</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=4kBvvk2Bzis">Go WebAssembly
|
||
Tutorial - Building a Calculator (2018-08)</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=iTrx0BbUXI4">Get Going with
|
||
WebAssembly (2018-08)</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=BnYq7JapeDA">Build the
|
||
future of the web with WebAssembly and more (Google I/O
|
||
2018-05)</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=pBYqen3B2gc">WebAssembly
|
||
and the Death of JavaScript? (2018-02)</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=bac0dGQbUto">Practical
|
||
WebAssembly (2017-12)</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=PpuAqLCraAQ">Real World
|
||
WebAssembly (Chrome Dev Summit 2017-10)</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=AFy5TdrFG9Y">Andreas
|
||
Rossberg - Bringing the Web up to Speed with WebAssembly
|
||
(2017-06)</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=6v4E6oksar0">Compiling for
|
||
the Web with WebAssembly (Google I/O 2017-05)</a></li>
|
||
<li><a
|
||
href="https://www.youtube.com/watch?list=PL37ZVnwpeshFmAPr65sU2O5WMs7_CGjs_&v=HktWin_LPf4">A
|
||
Cartoon Intro to WebAssembly (2017-05)</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=cRwUD5SxF4o">WebAssembly
|
||
Demystified (2017-05)</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=8gRHHIjx4oE">Meeting C++
|
||
2016: Implementing a web game in C++14 - Kris Jusiak (2017-01)</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=jXMtQ2fTl4c">CppCon 2016:
|
||
Dan Gohman “C++ on the Web: Let’s have some serious fun.”
|
||
(2016-10)</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=AIFmOwRbXao">WebAssembly
|
||
and the Future of the Browser (2016-09)</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=RByPdCN1RQ4">NYLUG
|
||
Presents: Luke Wagner -on- WebAssembly: A New Compiler Target For The
|
||
Web (2016-06)</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=iCSAUHpPbiU">Web Assembly -
|
||
Nick Bray - BlinkOn 5 - (2015-11)</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=NhAPPQqKCi8">Web Assembly -
|
||
Nick Bray - GOTO 2015 - (2015-10)</a></li>
|
||
<li><a
|
||
href="https://brendaneich.com/2015/06/from-asm-js-to-webassembly/">From
|
||
ASM.JS to WebAssembly (2015-06)</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=r-A78RgMhZU">A Talk Near
|
||
the Future of Python (a.k.a., Dave live-codes a WebAssembly
|
||
Interpreter)</a></li>
|
||
</ul>
|
||
<h2 id="slides">Slides</h2>
|
||
<ul>
|
||
<li><a href="https://wasm-talk.johnny.sh/#0">Web Assembly for Dumb
|
||
People (2020)</a></li>
|
||
<li><a
|
||
href="https://leefsmp.github.io/Particle-System/slides/index.html">Boost
|
||
your web application with C++ (2016)</a></li>
|
||
<li><a
|
||
href="http://callahad.github.io/tccc20-wasm/slides/#/">WebAssembly (Do
|
||
we all have to learn C now?)</a></li>
|
||
<li><a
|
||
href="https://marianoguerra.github.io/ricardo-forth/resources/slides.html#/webassembly">WebAssembly
|
||
(2016)</a></li>
|
||
<li><a
|
||
href="https://www.slideshare.net/ValeriiaMaliarenko/web-assembly-overview-by-mikhail-sorokovsky">WebAssembly
|
||
overview (2016)</a></li>
|
||
<li><a href="https://kripken.github.io/talks/wasm.html">Emscripten and
|
||
WebAssembly (2015)</a></li>
|
||
<li><a
|
||
href="https://www.slideshare.net/danlbudden/an-introduction-to-webassembly">An
|
||
intro to WebAssembly (2015)</a></li>
|
||
</ul>
|
||
<h2 id="community">Community</h2>
|
||
<ul>
|
||
<li><a href="https://www.w3.org/community/webassembly/">W3C Community
|
||
Group</a></li>
|
||
<li><a
|
||
href="https://stackoverflow.com/questions/tagged/webassembly">Stack
|
||
Overflow</a></li>
|
||
<li><a href="https://twitter.com/webassemblynews">Twitter</a></li>
|
||
<li><a href="https://webassemblydevelopers.slack.com">Slack: WebAssembly
|
||
Developers</a> <a
|
||
href="https://webassemblydevelopers.herokuapp.com/">(click here to get
|
||
an invitation)</a></li>
|
||
<li><a href="http://wasmweekly.news/">WasmWeekly - a weekly
|
||
newsletter</a></li>
|
||
<li><a
|
||
href="http://pages.catchpoint.com/webassembly-ama.html">WebAssembly
|
||
AMA</a></li>
|
||
</ul>
|
||
<h2 id="books">Books</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/sunfishcode/wasm-reference-manual">WebAssembly
|
||
Reference Manual</a></li>
|
||
<li><a
|
||
href="https://www.packtpub.com/web-development/learn-webassembly">Learn
|
||
WebAssembly - Build web applications with native performance using Wasm
|
||
and C/C++</a></li>
|
||
<li><a
|
||
href="https://pragprog.com/book/khrust/programming-webassembly-with-rust">Programming
|
||
WebAssembly with Rust - Unified Development for Web, Mobile, and
|
||
Embedded Applications</a></li>
|
||
<li><a href="https://rustwasm.github.io/docs/book/">Rust and
|
||
WebAssembly</a></li>
|
||
<li><a
|
||
href="https://www.manning.com/books/webassembly-in-action">WebAssembly
|
||
in Action - Introduces the WebAssembly stack and walks you through the
|
||
process of writing and running browser-based applications</a></li>
|
||
<li><a href="http://www.levelupwasm.com/">Level up with WebAssembly - A
|
||
practical guide to building WebAssembly applications</a></li>
|
||
<li><a
|
||
href="https://www.packtpub.com/game-development/hands-game-development-webassembly">Hands-On
|
||
Game Development with WebAssembly</a></li>
|
||
</ul>
|
||
<h2 id="papers">Papers</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/WebAssembly/spec/blob/master/papers/pldi2017.pdf">Bringing
|
||
the Web up to Speed with WebAssembly</a></li>
|
||
<li><a
|
||
href="http://blog.scottlogic.com/ceberhardt/assets/white-papers/the-web-assembles.pdf">The
|
||
Web Assembles</a></li>
|
||
<li><a href="https://dlehmann.eu/publications/WasmBench-www2021.pdf">An
|
||
Empirical Study of Real-World WebAssembly Binaries: Security, Languages,
|
||
Use Cases</a></li>
|
||
<li><a href="https://www.usenix.org/system/files/atc19-jangda.pdf">Not
|
||
So Fast: Analyzing the Performance of WebAssembly vs. Native
|
||
Code</a></li>
|
||
<li><a
|
||
href="https://www.usenix.org/system/files/sec22-bosamiya.pdf">Provably-Safe
|
||
Multilingual Software Sandboxing using WebAssembly</a></li>
|
||
<li><a
|
||
href="https://software-lab.org/publications/asplos2019_Wasabi.pdf">Wasabi:
|
||
A Framework for Dynamically Analyzing WebAssembly</a></li>
|
||
</ul>
|
||
<h2 id="demos">Demos</h2>
|
||
<ul>
|
||
<li><a href="https://cselab.github.io/aphros/wasm/hydro.html">Aphrós -
|
||
finite volume solver for incompressible multiphase flows</a></li>
|
||
<li><a
|
||
href="http://kripken.github.io/ammo.js/examples/webgl_demo/ammo.wasm.html">Cubes
|
||
- direct port of the Bullet physics engine</a></li>
|
||
<li><a
|
||
href="http://basic4gl.net/mobile/Development/webasm/basic4gl.html">Basic4GL</a></li>
|
||
<li><a href="http://symatem.github.io/">Symatem - an Ontology Engine,
|
||
Visualizer, and Editor</a></li>
|
||
<li><a href="https://www.funkykarts.rocks/demo.html">Funky
|
||
Karts</a></li>
|
||
<li><a href="https://web-preview.pspdfkit.com/standalone/6">PSPDFKit for
|
||
Web - a WebAssembly-based PDF viewer with annotation features</a></li>
|
||
<li><a href="http://playground.platform.uno">Uno Platform Playground - a
|
||
WebAssembly-based XAML playground</a></li>
|
||
<li><a href="http://roslynquoter-wasm.platform.uno/">Roslyn Quoter - a
|
||
WebAssembly-based Roslyn-based C# code quoter</a></li>
|
||
<li><a href="https://wasmboy.app/">wasmBoy Demo/Debugger - a Gameboy
|
||
Emulation library written in Web Assembly using AssemblyScript</a></li>
|
||
<li><a href="http://wasm.continuation-labs.com/d3demo/">DOOM 3 - Doom 3
|
||
WebAssembly port</a></li>
|
||
<li><a href="https://squoosh.app">Squoosh.app - Compress and compare
|
||
images with different codecs, right in your browser</a></li>
|
||
<li><a href="https://app.sketchup.com/app">SketchUp - 3D modeling
|
||
software</a></li>
|
||
<li><a href="https://www.pdftron.com/webviewer/demo/">WebViewer - a CAD,
|
||
MS Office, and PDF SDK</a></li>
|
||
</ul>
|
||
<h2 id="resources-in-other-languages">Resources in other languages</h2>
|
||
<h3 id="russian">Russian</h3>
|
||
<ul>
|
||
<li><a href="https://www.youtube.com/watch?v=eWF_1nMM5Yo">KharkivJS #5:
|
||
Serious JS (Kharkiv, Ukraine, November 7, 2015) - WebAssembly: new era
|
||
of Web (video)</a></li>
|
||
<li><a href="https://www.youtube.com/watch?v=kS29TT4wk44">OdessaJS 2017
|
||
- Real world WebAssembly (video)</a></li>
|
||
<li><a
|
||
href="https://tproger.ru/translations/webassembly-tutorial-first-steps/">Урок-введение
|
||
по WebAssembly на примере игры “Жизнь” (article)</a></li>
|
||
</ul>
|
||
<h3 id="simplified-chinese">Simplified Chinese</h3>
|
||
<ul>
|
||
<li><a href="http://webassembly.org.cn/">WebAssembly 中文网</a></li>
|
||
<li><a href="https://www.w3ctech.com/category/18">WebAssembly
|
||
中文社区</a></li>
|
||
<li><a href="https://github.com/WebAssembly-cn">WebAssembly-cn
|
||
Orgnization</a></li>
|
||
<li><a
|
||
href="https://github.com/chai2010/awesome-wasm-zh">WebAssembly资料精选 -
|
||
中文版</a></li>
|
||
<li><a
|
||
href="https://github.com/chai2010/awesome-wasm-zh/blob/master/webassembly-primer.md">WebAssembly标准入门
|
||
- 第一本中文图书</a></li>
|
||
<li><a href="https://github.com/3dgen/cppwasm-book">C/C++面向wasm编程 -
|
||
第一本中文开源图书</a></li>
|
||
<li><a href="https://zhuanlan.zhihu.com/p/47577104">《深入浅出
|
||
WebAssembly》</a></li>
|
||
</ul>
|
||
<h3 id="spanish">Spanish</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://juancrg90.me/essays/compilando-para-el-navegador-con-webassembly">Compilando
|
||
para el navegador con WebAssembly (article)</a></li>
|
||
</ul>
|
||
<h2 id="license">License</h2>
|
||
<p><a href="https://creativecommons.org/publicdomain/zero/1.0/"><img
|
||
src="http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg"
|
||
alt="CC0" /></a></p>
|
||
<p>To the extent possible under law, <a
|
||
href="https://github.com/mbasso">Matteo Basso</a> has waived all
|
||
copyright and related or neighboring rights to this work.</p>
|