awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
rustwasm avatar

rustwasm/wasm-bindgen

0
View on GitHub↗
9,057 stars·1,220 forks·Rust·Apache-2.0·11 viewswasm-bindgen.github.io/wasm-bindgen↗

Wasm Bindgen

wasm-bindgen is a bindings generator and interop layer designed to map data types and functions across the boundary between WebAssembly and JavaScript. It functions as a foreign function interface that synthesizes the necessary boilerplate to enable bidirectional communication between Rust and the browser runtime.

The project generates glue code and wrappers that automate the conversion of complex types, allowing Rust functions to be exported as JavaScript modules and browser APIs to be imported into Rust. It uses procedural macros to define these interfaces and synthesizes bindings based on Rust type definitions.

The system manages memory through linear-memory pointer passing and handles the exchange of resources using JavaScript-managed memory handles. It relies on a calling convention compatible with the C ABI to pass primitive integers and floats between the module and the host.

Features

  • WebAssembly Glue Code Generators - Generates the necessary JavaScript and Rust glue code to automate complex type conversion between the two environments.
  • FFI Export Macros - Uses procedural macros to annotate Rust functions and types for export to the JavaScript environment.
  • Rust Language Binding Generators - Generates the necessary boilerplate and language bindings to call Rust functions from JavaScript and vice versa.
  • JavaScript Function Invocations - Provides the ability to invoke specific JavaScript functions and browser APIs from within Rust code.
  • WebAssembly-JavaScript Interoperability - Manages the exchange of complex data types, functions, and memory between WebAssembly and JavaScript.
  • Foreign Function Interfaces - Implements a foreign function interface for mapping complex types across the WebAssembly and host boundary.
  • WebAssembly Bridges - Creates high-level communication bindings to export compiled WebAssembly functions to JavaScript environments.
  • Function Exports - Exposes Rust functions and types as modules that can be called by the JavaScript runtime.
  • Rust WebAssembly Integrations - Provides the core machinery for calling Rust from JavaScript and utilizing browser APIs within Rust.
  • Interop Layers - Acts as a compatibility layer translating memory and type representations between Rust and the browser runtime.
  • Rust-to-JS Type Synthesis - Analyzes Rust type definitions to automatically synthesize memory layouts and conversion logic for JavaScript.
  • C ABI Compatibility - Implements a low-level calling convention compatible with the C ABI for passing primitives between Wasm and the host.
  • Linear Memory Sharing - Passes memory addresses and lengths to share large data structures between Rust and JavaScript without copying buffers.
  • Wasm Memory Handles - Wraps Wasm memory pointers in JavaScript objects to track and manage allocated Rust resources.
  • Rust Frontend Frameworks - Facilitates building web-based user interfaces and application logic using Rust.
  • High-Performance UI Logic - Enables moving compute-intensive tasks from JavaScript to Rust for higher performance in web applications.
  • Language Implementations - Library for Rust and JavaScript interoperability.
  • WebAssembly Interoperability - High-level interface for Rust and JavaScript module interaction.

Star history

Star history chart for rustwasm/wasm-bindgenStar history chart for rustwasm/wasm-bindgen

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Wasm Bindgen

Similar open-source projects, ranked by how many features they share with Wasm Bindgen.
  • wasm-bindgen/wasm-bindgenwasm-bindgen avatar

    wasm-bindgen/wasm-bindgen

    9,042View on GitHub↗

    wasm-bindgen is a glue code generator and interoperability tool that facilitates high-level communication and data exchange between compiled Rust modules and JavaScript environments. It functions as a memory bridge and type definition generator, allowing the exchange of complex data types and the calling of functions across execution boundaries. The project distinguishes itself by automating the conversion of data types and function signatures using attribute-based bindings. It generates the necessary JavaScript and WebAssembly wrappers to manage linear memory mapping and creates automatic Ty

    Rust
    View on GitHub↗9,042
  • thedodd/trunkthedodd avatar

    thedodd/trunk

    4,317View on GitHub↗

    Trunk is a build tool and development server for compiling Rust code to WebAssembly and packaging it for browser deployment. It functions as a web bundler that combines WebAssembly modules, JavaScript, and static files into a deployable web application. The tool provides a local development server utilizing HTTP and WebSocket proxies to enable rapid iteration. This environment includes a file-system watcher that triggers automatic rebuilds and browser reloading when source files are modified. The pipeline handles the conversion of Rust source code into WebAssembly binaries and generates the

    Rust
    View on GitHub↗4,317
  • neon-bindings/neonneon-bindings avatar

    neon-bindings/neon

    8,410View on GitHub↗

    Neon is a framework for writing high-performance native Node.js modules using the Rust programming language. It serves as a foreign function interface bridge and a toolchain for bootstrapping, compiling, and managing Rust-based extensions. The project provides a cross-language memory manager that handles buffers and object borrowing to ensure safe memory access between Rust and JavaScript. It enables the mapping of data types and function calls across the language boundary, allowing Rust functions to be exported to the script environment and JavaScript functions to be called from Rust. The f

    Rust
    View on GitHub↗8,410
  • godot-rust/gdextgodot-rust avatar

    godot-rust/gdext

    4,912View on GitHub↗

    gdext provides a set of language bindings for writing high-performance native game logic in Rust for the Godot 4 engine. It serves as a framework for creating native engine extensions and custom classes via the GDExtension library, allowing developers to extend core engine functionality without recompiling the engine source code. The project includes a dedicated Rust WebAssembly toolchain to compile native logic into modules for execution in web browsers. This system supports WebAssembly-compatible compilation with specific configurations for web threading and module debugging. The toolkit c

    Rustgame-developmentgamedevgodot
    View on GitHub↗4,912
See all 30 alternatives to Wasm Bindgen→

Frequently asked questions

What does rustwasm/wasm-bindgen do?

wasm-bindgen is a bindings generator and interop layer designed to map data types and functions across the boundary between WebAssembly and JavaScript. It functions as a foreign function interface that synthesizes the necessary boilerplate to enable bidirectional communication between Rust and the browser runtime.

What are the main features of rustwasm/wasm-bindgen?

The main features of rustwasm/wasm-bindgen are: WebAssembly Glue Code Generators, FFI Export Macros, Rust Language Binding Generators, JavaScript Function Invocations, WebAssembly-JavaScript Interoperability, Foreign Function Interfaces, WebAssembly Bridges, Function Exports.

What are some open-source alternatives to rustwasm/wasm-bindgen?

Open-source alternatives to rustwasm/wasm-bindgen include: wasm-bindgen/wasm-bindgen — wasm-bindgen is a glue code generator and interoperability tool that facilitates high-level communication and data… thedodd/trunk — Trunk is a build tool and development server for compiling Rust code to WebAssembly and packaging it for browser… neon-bindings/neon — Neon is a framework for writing high-performance native Node.js modules using the Rust programming language. It serves… mozilla/uniffi-rs — uniffi-rs is a Rust FFI binding generator and multi-language binding tool. It functions as an automated binding… seed-rs/seed — Seed is a frontend framework for building single-page applications using Rust and WebAssembly. It provides a virtual… godot-rust/gdext — gdext provides a set of language bindings for writing high-performance native game logic in Rust for the Godot 4…