Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
awesome-rust-and-webassembly
Awesome Rust and WebAssembly projects, libraries, tools, and resources
https://github.com/rustwasm/awesome-rust-and-webassembly
Last synced: 1 day ago
JSON representation
-
Applications
-
Visualization
- snowhash
- macro_railroad - source as Scalable Vector Graphics, using customizable CSS for layout.
- wasmbooth
-
-
Development Tools
-
Build and Workflow Orchestration
- wasm-pack - 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.
-
Optimizing `.wasm` Binaries
- wasm-snip - 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.
- wasm-gc - 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.
-
Size Profiling `.wasm` Binaries
- twiggy - 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.
-
JavaScript Toolchains and Bundler Plugins
- rollup-plugin-rust - 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.
- rs-jest - 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.
- rust-native-wasm-loader - 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.
- wasm-pack-plugin - 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`.
-
Inspecting `.wasm` Binaries
- wasm-objdump - 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.
- wasm-nm - 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.
-
Polyfilling WebAssembly
- wasm2js - 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.
-
-
Libraries
-
Allocation and Memory Management
- wee_alloc - 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.
-
Error Handling
- console_error_panic_hook - 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`.
-
Games
- gate - 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.
-
Parsing and Generating `.wasm` Binaries
- parity-wasm - 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.
- wasmparser - ci.org/yurydelendik/wasmparser.svg?branch=master)](https://travis-ci.org/yurydelendik/wasmparser) — A simple, event-driven library for parsing WebAssembly binary files.
-
Interfacing with JavaScript and the DOM
- wasm-bindgen - 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.
- js-sys - 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.
- wasm-bindgen-futures - 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.
-
Interpreting and Compiling WebAssembly
- wasmer
- cranelift-wasm - 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.
- wasmi - ci.org/paritytech/wasmi.svg?branch=master)](https://travis-ci.org/paritytech/wasmi) — An embeddable WebAssembly interpreter.
- wasmtime - style runtime for WebAssembly
-
Programming Languages
Categories
Sub Categories
Interpreting and Compiling WebAssembly
4
JavaScript Toolchains and Bundler Plugins
4
Interfacing with JavaScript and the DOM
3
Visualization
3
Inspecting `.wasm` Binaries
2
Parsing and Generating `.wasm` Binaries
2
Optimizing `.wasm` Binaries
2
Games
1
Error Handling
1
Allocation and Memory Management
1
Size Profiling `.wasm` Binaries
1
Build and Workflow Orchestration
1
Polyfilling WebAssembly
1
Keywords
rust
13
wasm
10
webassembly
8
rust-wasm
4
javascript
2
my-experiment
2
emscripten
2
webpack-loader
1
loader
1
jest-transform
1
jest
1
rollup-plugin
1
rollup
1
size-optimization
1
profiler
1
image-processing
1
registry
1
package
1
npm
1
vm
1
runtime
1
interpreter
1
compilers
1
c-plus-plus
1
windows
1
wasmer
1
wasix
1
wasi
1
macos
1
linux
1
binding-generator
1
wasm-bytecode
1
panic-hook
1
console
1
allocator
1
bindgen
1
cli
1