Awesome Wasm

repository·master·Indexed 27 days ago

https://github.com/mbasso/awesome-wasm

A curated collection of resources, tools, compilers, and runtimes related to the WebAssembly (Wasm) ecosystem. Includes links to official specifications, online playgrounds, tutorials, compilers (such as Emscripten, Binaryen, and AssemblyScript), non-web runtimes (WASI, Wasmer, wasmtime), development tools, benchmarks, and community resources.

Tokens
2.8K
Snippets
0
Records
19
Agent score
44%

What's inside awesome-wasm

  1. Explore WebAssembly Languages and Compilers

    master

    Find compilers and language support for targeting WebAssembly across multiple ecosystems:

    • AssemblyScript: A TypeScript subset that compiles to Wasm.
    • Go: Native support and compilation guides.
    • Kotlin: Kotlin/Wasm support.
    • Lua: VMs running in Wasm environments like wasmoon or wasm_lua.
    • OCaml: Bytecode interpreters and compilers like wasicaml and Wasocaml.
    • Python: Scientific stacks in the browser via Pyodide or PyScript.
    • Rust: Ecosystem tools like wasm-bindgen for JS/Rust interop and parity-wasm for serialization.
    • WASM-like Languages: Higher-level syntaxes like wah, Walt, and wam.
  2. Explore WebAssembly Projects by Category

    master

    The awesome-wasm repository provides a curated list of WebAssembly (Wasm) projects categorized by their application domain. Use these links to find specialized tools for:

    • AI: Vector similarity search engines (e.g., Voy).
    • Apache Server: Extensions like mod_wasm for enabling Wasm in Apache.
    • Web Frameworks & Libraries: Frameworks for various languages including Rust (Yew, seed), Go (Vugu, Vecty), C# (Blazor), and AssemblyScript (asdom).
    • Data Processing: Tools like jq-web for JSON processing.
    • WebGL: Physics engines (ammo.js) and 3D frameworks (Oryol).
    • Build Tools: Webpack loaders (wasm-loader) and Browserify transforms (rustify).
    • Node.js Tooling: Packaging and runtime tools like wasm-pack and xwasm.
    • .NET: Implementations like Uno Platform and Ooui.Wasm.
    • Other Utilities: PDF generation (wasm-pdf), video transcoding (webm-wasm), and cryptography (crypto-js-wasm).
  3. Use WebAssembly Development Tools and Editors

    master

    Enhance your development workflow with specialized editors and toolkits:

    Editor Support

    • Vim: vim-wasm for filetype support.
    • VS Code: vscode wast (S-expression support) and vscode-wasm (toolkit).
    • Atom: language-wast.

    Kits and Toolchains

    • WABT: A suite of tools for working with Wasm binary files.
    • webassembly-binary-toolkit: WABT tools installable via npm.
    • Owi: A cross-language bug-finder for WebAssembly.
  4. View WebAssembly Code Examples and Gists

    master

    Access practical code snippets and demonstrations to understand Wasm implementation:

    Useful Gists

    • Standalone WebAssembly Example: A basic implementation guide.
    • Using WebAssembly in LLVM: Integration with the LLVM compiler infrastructure.
    • Calling alert from WebAssembly (WASM): How to invoke browser APIs from Wasm.

    Project Examples

    • Emulators: Gameboy emulators (wasmBoy, Boytacean) and 8-bit emulators (YAKC).
    • Algorithms: A* Pathfinding and Factorial implementations.
    • Visualizations: D3 force layouts and 3D animations.
    • Real-world Apps: Windows 10 calculator running in Wasm and HackerNews PWAs.
  5. Find WebAssembly Tutorials

    master