awesome-repositories.com
Blog
awesome-repositories.com

Entdecke die besten Open-Source-Repositories mit KI-gestützter Suche.

EntdeckenKuratierte SuchenOpen-Source-AlternativenSelf-hosted SoftwareBlogSitemap
ProjektÜber unsRanking-MethodikPresseMCP-Server
RechtlichesDatenschutzAGB
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
wasm-bindgen avatar

wasm-bindgen/wasm-bindgen

0
View on GitHub↗
9,042 Stars·1,218 Forks·Rust·Apache-2.0·9 Aufrufewasm-bindgen.github.io/wasm-bindgen↗

Wasm Bindgen

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 TypeScript type bindings to provide static checking and autocomplete.

The framework covers several capability areas, including host interaction for invoking web APIs and DOM manipulation, as well as asynchronous coordination between promises and futures. It also provides mechanisms for multi-threaded execution coordination across web workers and the translation of exceptions between the guest module and the host.

Tooling is included for executing test suites within headless browser environments.

Features

  • JavaScript Interop - Exposes internal Rust functions as callable modules for execution within JavaScript environments.
  • WebAssembly Glue Code Generators - Automatically generates the necessary JavaScript and WebAssembly glue code to facilitate high-level communication between Rust and the browser.
  • Complex Data Type Exchange - Enables the exchange of complex objects, strings, and classes beyond simple numeric types.
  • Type-Safe Binding Generators - Generates static TypeScript type definitions to ensure data consistency and provide autocomplete when calling modules from JavaScript.
  • Linear Memory Managers - Reads and writes data to a shared contiguous buffer to exchange strings and objects between the host and module.
  • Foreign Function Bindings - Invokes native functions and web APIs from within Rust source code by defining external bindings.
  • Host Function Exposure - Allows compiled modules to call external JavaScript logic and system APIs for tasks such as DOM manipulation.
  • JavaScript Interoperability - Facilitates high-level communication and data exchange between compiled Rust modules and the host JavaScript environment.
  • Module Interface Exports - Exposes functions and classes from a compiled WebAssembly module so they can be called by the host environment.
  • Language Interoperability Automation - Automates the conversion of data types and function calls between Rust and JavaScript.
  • WebAssembly Bridges - Provides a high-level bridge for exporting functions and exchanging complex data types between WebAssembly and JavaScript.
  • Cross-Language Type Export - Generates JavaScript classes and type definitions from internal Rust structures to maintain consistency.
  • Type Conversion and Casting - Transforms data between JavaScript values and Rust types, including primitives, strings, and vectors.
  • Type Definition Generators - Automatically synthesizes static TypeScript type definitions from compiled Rust structures for use in external environments.
  • Host Environment Integration - Embeds functions and objects from the host environment into Rust source code for use within compiled modules.
  • Shared Memory Buffers - Provides shared memory buffers and atomic operations to coordinate execution across multiple web worker threads.
  • Async Runtime Bridges - Translates asynchronous handles between the host event loop and the guest runtime to allow cross-environment awaiting.
  • Asynchronous Promise Interfaces - Provides mechanisms to bridge JavaScript promises and Rust futures for cross-environment asynchronous operations.
  • Cross-Language Prototype Mapping - Creates prototype chains between exported structures to support method dispatch and instance checks in JavaScript.
  • ES Module Integrations - Provides a compatibility layer to import and use compiled WebAssembly modules as standard ECMAScript modules.
  • JavaScript Multi-Threading - Synchronizes memory and atomics between web workers and browser threads to enable multi-threaded execution.
  • Attribute-Based Mappings - Uses source-level metadata attributes to automate the generation of function signatures and type mappings.
  • Runtime Exception Handling - Wraps exported functions to catch JavaScript exceptions and translate them into native Rust error types.
  • Cross-Runtime Closure Wrapping - Wraps internal Rust closures for use in the host environment with options for ownership transfer.
  • Cross-Runtime Exception Translation - Intercepts native Wasm traps and JavaScript errors to translate them into language-specific error types across the boundary.
  • TypeScript Type Definitions - Creates automatic TypeScript type bindings to provide autocomplete and static checking for compiled modules.
  • Foreign Function Interface - Facilitates interaction between Wasm and JavaScript.

Star-Verlauf

Star-Verlauf für wasm-bindgen/wasm-bindgenStar-Verlauf für wasm-bindgen/wasm-bindgen

KI-Suche

Entdecke weitere awesome Repositories

Beschreibe in einfachen Worten, was du brauchst — die KI bewertet tausende kuratierte Open-Source-Projekte nach Relevanz.

Start searching with AI

Open-Source-Alternativen zu Wasm Bindgen

Ähnliche Open-Source-Projekte, sortiert nach der Anzahl der gemeinsamen Funktionen mit Wasm Bindgen.
  • rescript-lang/rescriptAvatar von rescript-lang

    rescript-lang/rescript

    7,396Auf GitHub ansehen↗

    ReScript is a statically typed programming language and compiler designed to transform type-safe source code into efficient, human-readable JavaScript. It functions as a transpiler that enforces data consistency and prevents runtime errors through static type analysis for both web and server applications. The project distinguishes itself as an incremental build system that analyzes dependency graphs to recompile only modified files and their dependents. It includes a JSX compatible compiler for building user interfaces and provides a framework for bridging type-safe code with existing JavaScr

    ReScriptaltjscompilerjavascript
    Auf GitHub ansehen↗7,396
  • wasm-bindgen/wasm-packAvatar von wasm-bindgen

    wasm-bindgen/wasm-pack

    7,207Auf GitHub ansehen↗

    wasm-pack is a build tool and workflow orchestrator for compiling Rust code to WebAssembly. It coordinates the compilation process and generates the JavaScript glue code required to execute Rust logic within web browsers and server-side runtimes. The tool manages binary optimization to reduce file sizes and improve execution speed. It also functions as a package manager, bundling compiled WebAssembly modules into archives compatible with JavaScript registries and bundlers. The project covers language interoperability through the automatic generation of TypeScript type definitions. It further

    Rust
    Auf GitHub ansehen↗7,207
  • neon-bindings/neonAvatar von neon-bindings

    neon-bindings/neon

    8,410Auf GitHub ansehen↗

    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
    Auf GitHub ansehen↗8,410
  • rustwasm/wasm-bindgenAvatar von rustwasm

    rustwasm/wasm-bindgen

    9,057Auf GitHub ansehen↗

    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
    Auf GitHub ansehen↗9,057
Alle 30 Alternativen zu Wasm Bindgen anzeigen→

Häufig gestellte Fragen

Was macht wasm-bindgen/wasm-bindgen?

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.

Was sind die Hauptfunktionen von wasm-bindgen/wasm-bindgen?

Die Hauptfunktionen von wasm-bindgen/wasm-bindgen sind: JavaScript Interop, WebAssembly Glue Code Generators, Complex Data Type Exchange, Type-Safe Binding Generators, Linear Memory Managers, Foreign Function Bindings, Host Function Exposure, JavaScript Interoperability.

Welche Open-Source-Alternativen gibt es zu wasm-bindgen/wasm-bindgen?

Open-Source-Alternativen zu wasm-bindgen/wasm-bindgen sind unter anderem: rescript-lang/rescript — ReScript is a statically typed programming language and compiler designed to transform type-safe source code into… wasm-bindgen/wasm-pack — wasm-pack is a build tool and workflow orchestrator for compiling Rust code to WebAssembly. It coordinates the… neon-bindings/neon — Neon is a framework for writing high-performance native Node.js modules using the Rust programming language. It serves… rustwasm/wasm-bindgen — wasm-bindgen is a bindings generator and interop layer designed to map data types and functions across the boundary… scala-js/scala-js — Scala.js is a compiler and cross-platform language toolchain that transforms Scala source code into JavaScript or… rhaiscript/rhai — Rhai is an embedded scripting engine and dynamically typed language designed for integration into Rust applications.…