{"id":13556322,"url":"https://github.com/rustwasm/awesome-rust-and-webassembly","last_synced_at":"2026-06-08T15:30:15.005Z","repository":{"id":38712533,"uuid":"148698182","full_name":"rustwasm/awesome-rust-and-webassembly","owner":"rustwasm","description":"Awesome Rust and WebAssembly projects, libraries, tools, and resources","archived":false,"fork":false,"pushed_at":"2023-08-31T07:48:04.000Z","size":20,"stargazers_count":644,"open_issues_count":8,"forks_count":45,"subscribers_count":28,"default_branch":"master","last_synced_at":"2024-12-17T12:54:19.952Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rustwasm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-09-13T21:07:16.000Z","updated_at":"2024-12-15T23:02:11.000Z","dependencies_parsed_at":"2024-01-14T21:23:41.828Z","dependency_job_id":"a0114d12-4fd3-40bb-ad18-d2b9e83ce4e5","html_url":"https://github.com/rustwasm/awesome-rust-and-webassembly","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustwasm%2Fawesome-rust-and-webassembly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustwasm%2Fawesome-rust-and-webassembly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustwasm%2Fawesome-rust-and-webassembly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustwasm%2Fawesome-rust-and-webassembly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rustwasm","download_url":"https://codeload.github.com/rustwasm/awesome-rust-and-webassembly/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240214566,"owners_count":19766263,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T12:03:45.698Z","updated_at":"2026-06-08T15:30:14.929Z","avatar_url":"https://github.com/rustwasm.png","language":null,"funding_links":[],"categories":["Others","WASM","others","Related lists","Other Awesome","Programming Languages"],"sub_categories":["Frameworks"],"readme":"\u003cmeta charset=\"utf-8\"/\u003e\n\n# Awesome Rust and Webassembly\n\nA list of awesome Rust and WebAssembly projects, libraries, tools, and\nresources.\n\n## Contributing\n\n[If you want to contribute, read this.](./CONTRIBUTING.md)\n\n## License\n\n\u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\"\u003e\n  \u003cimg alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-sa/4.0/88x31.png\" /\u003e\n\u003c/a\u003e\n\nThis work is licensed under a \u003ca rel=\"license\"\nhref=\"http://creativecommons.org/licenses/by-sa/4.0/\"\u003eCreative Commons\nAttribution-ShareAlike 4.0 International License\u003c/a\u003e.\n\n## Table of Contents\n\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n\n\n- [Applications](#applications)\n  - [Visualization](#visualization)\n- [Development Tools](#development-tools)\n  - [Build and Workflow Orchestration](#build-and-workflow-orchestration)\n  - [Inspecting `.wasm` Binaries](#inspecting-wasm-binaries)\n  - [Optimizing `.wasm` Binaries](#optimizing-wasm-binaries)\n  - [Size Profiling `.wasm` Binaries](#size-profiling-wasm-binaries)\n  - [Polyfilling WebAssembly](#polyfilling-webassembly)\n  - [JavaScript Toolchains and Bundler Plugins](#javascript-toolchains-and-bundler-plugins)\n- [Libraries](#libraries)\n  - [Allocation and Memory Management](#allocation-and-memory-management)\n  - [Error Handling](#error-handling)\n  - [Games](#games)\n  - [Interfacing with JavaScript and the DOM](#interfacing-with-javascript-and-the-dom)\n  - [Interpreting and Compiling WebAssembly](#interpreting-and-compiling-webassembly)\n  - [Parsing and Generating `.wasm` Binaries](#parsing-and-generating-wasm-binaries)\n- [Resources](#resources)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n--------------------------------------------------------------------------------\n\n## Applications\n\n### Visualization\n\n* [macro_railroad](https://github.com/lukaslueg/macro_railroad) —  Generating \"railroad style\" syntax diagrams for `macro_rules!()` macros. Diagrams are generated fully automatically from rust-source as Scalable Vector Graphics, using customizable CSS for layout.\n\n* [snowhash](https://joshleeb.com/projects/snowhash/) — Procedurally generate a unique snowflake from a hash.\n\n* [wasmbooth](https://github.com/mtharrison/wasmbooth) — Video effect booth written in Rust and WebAssembly.\n\n## Development Tools\n\n### Build and Workflow Orchestration\n\n* [wasm-pack](https://github.com/rustwasm/wasm-pack) [![](https://img.shields.io/crates/v/wasm-pack.svg)](https://crates.io/crates/wasm-pack) [![](https://api.travis-ci.org/rustwasm/wasm-pack.svg?branch=master)](https://travis-ci.org/rustwasm/wasm-pack) — `wasm-pack` seeks to be a one-stop shop for building and working with Rust-generated WebAssembly that you would like to interoperate with JavaScript, on the Web or with Node.js. `wasm-pack` helps you build and publish Rust-generated WebAssembly to the npm registry to be used alongside any other JavaScript package in workflows that you already use.\n\n### Inspecting `.wasm` Binaries\n\n* [wasm-objdump](https://github.com/WebAssembly/wabt) [![](https://img.shields.io/crates/v/wabt.svg)](https://crates.io/crates/wabt) [![](https://api.travis-ci.org/WebAssembly/wabt.svg?branch=master)](https://travis-ci.org/WebAssembly/wabt) — Print low-level details about a `.wasm` binary and each of its sections. Also supports disassembling into the WAT text format. It's like `objdump` but for WebAssembly.\n\n* [wasm-nm](https://github.com/fitzgen/wasm-nm) [![](https://img.shields.io/crates/v/wasm-nm.svg)](https://crates.io/crates/wasm-nm) [![](https://api.travis-ci.org/fitzgen/wasm-nm.svg?branch=master)](https://travis-ci.org/fitzgen/wasm-nm) — List the imported, exported, and private function symbols defined within a `.wasm` binary. It's like `nm` but for WebAssembly.\n\n### Optimizing `.wasm` Binaries\n\n* [wasm-gc](https://github.com/alexcrichton/wasm-gc) [![](https://img.shields.Io/crates/v/wasm-gc.svg)](https://crates.io/crates/wasm-gc) [![](https://api.travis-ci.org/alexcrichton/wasm-gc.svg?branch=master)](https://travis-ci.org/alexcrichton/wasm-gc) — A small tool to garbage collect a WebAssembly module and remove all unneeded exports, imports, functions, etc. This is effectively a `--gc-sections` linker flag for WebAssembly.\n\n* [wasm-opt](https://github.com/WebAssembly/binaryen) [![](https://img.shields.io/crates/v/binaryen.svg)](https://crates.io/crates/binaryen) [![](https://api.travis-ci.org/WebAssembly/binaryen.svg?branch=master)](https://travis-ci.org/WebAssembly/binaryen) — The `wasm-opt` tool reads WebAssembly as input, runs transformation, optimization, and/or instrumentation passes on it, and then emits the transformed WebAssembly as output. Running it on the `.wasm` binaries produced by LLVM by way of `rustc` will usually create `.wasm` binaries that are both smaller and execute faster.\n\n* [wasm-snip](https://github.com/rustwasm/wasm-snip) [![](https://img.shields.io/crates/v/wasm-snip.svg)](https://crates.io/crates/wasm-snip) [![](https://api.travis-ci.org/rustwasm/wasm-snip.svg?branch=master)](https://travis-ci.org/rustwasm/wasm-snip) — `wasm-snip` replaces a WebAssembly function's body with an `unreachable` instruction. This is useful for forcibly removing Rust's panicking infrastructure in non-debug production builds.\n\n### Size Profiling `.wasm` Binaries\n\n* [twiggy](https://github.com/rustwasm/twiggy) [![](https://img.shields.io/crates/v/twiggy.svg)](https://crates.io/crates/twiggy) [![](https://api.travis-ci.org/rustwasm/twiggy.svg?branch=master)](https://travis-ci.org/rustwasm/twiggy) — `twiggy` is a code size profiler for `.wasm` binaries. It analyzes a binary's call graph to answer questions about which functions take up the most space.\n\n### Polyfilling WebAssembly\n\n* [wasm2js](https://github.com/WebAssembly/binaryen) [![](https://img.shields.io/crates/v/binaryen.svg)](https://crates.io/crates/binaryen) [![](https://api.travis-ci.org/WebAssembly/binaryen.svg?branch=master)](https://travis-ci.org/WebAssembly/binaryen) — The `wasm2js` tool compiles WebAssembly into \"almost asm.js\". This is great for supporting browsers that don't have a WebAssembly implementation, such as Internet Explorer 11.\n\n### JavaScript Toolchains and Bundler Plugins\n\n* [rollup-plugin-rust](https://github.com/DrSensor/rollup-plugin-rust) [![](https://img.shields.io/npm/v/rollup-plugin-rust.svg)](https://www.npmjs.com/package/rollup-plugin-rust) [![](https://img.shields.io/circleci/project/github/DrSensor/rollup-plugin-rust.svg?branch=master)](https://circleci.com/gh/DrSensor/rollup-plugin-rust) — A Rollup plugin that loads Rust code so it can be interop with Javascript base project.\n\n* [rs-jest](https://github.com/DrSensor/rs-jest) [![](https://img.shields.io/npm/v/rs-jest.svg)](https://www.npmjs.com/package/rs-jest) [![](https://img.shields.io/circleci/project/github/DrSensor/rs-jest.svg?branch=master)](https://circleci.com/gh/DrSensor/rs-jest) — Jest preprocessor/transformer for Rust. Build for seamless integration with a project that use rollup-plugin-rust.\n\n* [rust-native-wasm-loader](https://github.com/dflemstr/rust-native-wasm-loader) [![](https://img.shields.io/npm/v/rust-native-wasm-loader.svg)](https://www.npmjs.com/package/rust-native-wasm-loader) [![](https://travis-ci.org/dflemstr/rust-native-wasm-loader.svg?branch=master)](https://travis-ci.org/dflemstr/rust-native-wasm-loader) — A Webpack loader that loads Rust code as a WebAssembly module. It uses the native Rust support for compiling to wasm32 and does not require Emscripten.\n\n* [wasm-pack-plugin](https://github.com/wasm-tool/wasm-pack-plugin) [![](https://img.shields.io/npm/v/@wasm-tool/wasm-pack-plugin.svg)](https://www.npmjs.com/package/@wasm-tool/wasm-pack-plugin) [![](https://api.travis-ci.org/wasm-tool/wasm-pack-plugin.svg?branch=master)](https://travis-ci.org/wasm-tool/wasm-pack-plugin) — Webpack plugin for Rust and `wasm-pack`.\n\n## Libraries\n\n### Allocation and Memory Management\n\n* [wee_alloc](https://github.com/rustwasm/wee_alloc) [![](https://img.shields.io/crates/v/wee_alloc.svg)](https://crates.io/crates/wee_alloc) [![](https://api.travis-ci.org/rustwasm/wee_alloc.svg?branch=master)](https://travis-ci.org/rustwasm/wee_alloc) — The Wasm-Enabled, Elfin Allocator. A small (~1K uncompressed `.wasm`) allocator implementation for when code size is a greater concern than allocation performance.\n\n### Error Handling\n\n* [console_error_panic_hook](https://github.com/rustwasm/console_error_panic_hook) [![](https://img.shields.io/crates/v/console_error_panic_hook.svg)](https://crates.io/crates/console_error_panic_hook) [![](https://api.travis-ci.org/rustwasm/console_error_panic_hook.svg?branch=master)](https://travis-ci.org/rustwasm/console_error_panic_hook) — This crate lets you debug panics on `wasm32-unknown-unknown` by providing a panic hook that forwards panic messages to `console.error`.\n\n### Games\n\n* [gate](https://github.com/SergiusIW/gate) [![](https://img.shields.io/crates/v/gate.svg)](https://crates.io/crates/gate) [![](https://api.travis-ci.org/SergiusIW/gate.svg?branch=master)](https://travis-ci.org/SergiusIW/gate) — Gate is a game development library tailored to 2D pixel-art games, written in Rust.\n\n### Interfacing with JavaScript and the DOM\n\n* [js-sys](https://github.com/rustwasm/js-sys) [![](https://img.shields.io/crates/v/js-sys.svg)](https://crates.io/crates/js-sys) [![](https://api.travis-ci.org/rustwasm/wasm-bindgen.svg?branch=master)](https://travis-ci.org/rustwasm/wasm-bindgen) — Raw `wasm-bindgen` imports for all the JavaScript global types and methods, such as `Object`, `Function`, `eval`, etc. These APIs are portable across all standard ECMAScript environments, not just the Web, such as Node.js.\n\n* [wasm-bindgen](https://github.com/rustwasm/wasm-bindgen) [![](https://img.shields.io/crates/v/wasm-bindgen.svg)](https://crates.io/crates/wasm-bindgen) [![](https://api.travis-ci.org/rustwasm/wasm-bindgen.svg?branch=master)](https://travis-ci.org/rustwasm/wasm-bindgen) — `wasm-bindgen` facilitates high-level interactions between Rust and JavaScript. It allows one to import JavaScript things into Rust and export Rust things to JavaScript.\n\n* [wasm-bindgen-futures](https://github.com/rustwasm/wasm-bindgen-futures) [![](https://img.shields.io/crates/v/wasm-bindgen-futures.svg)](https://crates.io/crates/wasm-bindgen-futures) [![](https://api.travis-ci.org/rustwasm/wasm-bindgen.svg?branch=master)](https://travis-ci.org/rustwasm/wasm-bindgen) — `wasm-bindgen-futures` is a bridge connecting JavaSript `Promise`s and Rust `Future`s. It can convert in both directions and is useful when working with asynchronous tasks in Rust, and allows interacting with DOM events and I/O operations.\n\n### Interpreting and Compiling WebAssembly\n\n* [cranelift-wasm](https://github.com/CraneStation/cranelift-wasm) [![](https://img.shields.io/crates/v/cranelift-wasm.svg)](https://crates.io/crates/cranelift-wasm) [![](https://api.travis-ci.org/CraneStation/cranelift-wasm.svg?branch=master)](https://travis-ci.org/CraneStation/cranelift-wasm) — Compile WebAssembly to the native host's machine code. Part of the Cranelift (né Cretonne) code generator project.\n\n* [wasmer](https://github.com/wasmerio/wasmer) [![](https://img.shields.io/crates/v/wasmer.svg)](https://crates.io/crates/wasmer) [![Build Status](https://dev.azure.com/wasmerio/wasmer/_apis/build/status/wasmerio.wasmer?branchName=master)](https://dev.azure.com/wasmerio/wasmer/_build/latest?definitionId=3\u0026branchName=master) — Universal WebAssembly Runtime\n\n* [wasmi](https://github.com/paritytech/wasmi) [![](https://img.shields.io/crates/v/wasmi.svg)](https://crates.io/crates/wasmi) [![](https://api.travis-ci.org/paritytech/wasmi.svg?branch=master)](https://travis-ci.org/paritytech/wasmi) — An embeddable WebAssembly interpreter.\n\n* [wasmtime](https://github.com/CraneStation/wasmtime) [![](https://img.shields.io/crates/v/wasmtime.svg)](https://crates.io/crates/wasmtime)[![](https://dev.azure.com/CraneStation/Wasmtime/_apis/build/status/CraneStation.wasmtime?branchName=master)](https://dev.azure.com/CraneStation/Wasmtime/) —  Standalone JIT-style runtime for WebAssembly\n\n### Parsing and Generating `.wasm` Binaries\n\n* [parity-wasm](https://github.com/paritytech/parity-wasm) [![](https://img.shields.io/crates/v/parity-wasm.svg)](https://crates.io/crates/parity-wasm) [![](https://api.travis-ci.org/paritytech/parity-wasm.svg?branch=master)](https://travis-ci.org/paritytech/parity-wasm) — Low-level WebAssembly format library for serializing, deserializing, and building `.wasm` binaries. Good support for well-known custom sections, such as the \"names\" section.\n\n* [wasmparser](https://github.com/yurydelendik/wasmparser) [![](https://img.shields.io/crates/v/wasmparser.svg)](https://crates.io/crates/wasmparser) [![](https://api.travis-ci.org/yurydelendik/wasmparser.svg?branch=master)](https://travis-ci.org/yurydelendik/wasmparser) — A simple, event-driven library for parsing WebAssembly binary files.\n\n## Resources\n\n* [The Rust and WebAssembly Book](https://rustwasm.github.io/book) — The official Rust and WebAssembly book authored by the Rust and WebAssembly domain working group.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frustwasm%2Fawesome-rust-and-webassembly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frustwasm%2Fawesome-rust-and-webassembly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frustwasm%2Fawesome-rust-and-webassembly/lists"}