Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Facilitating high-level interactions between Wasm modules and JavaScript

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
NotificationsYou must be signed in to change notification settings

rustwasm/wasm-bindgen

Facilitating high-level interactions between Wasm modules and JavaScript.

Build StatusCrates.io versionDownloaddocs.rs docs

Built with 🦀🕸 byThe Rust and WebAssembly Working Group

Installwasm-bindgen-cli

You can install it usingcargo install:

cargo install wasm-bindgen-cli

Or, you can download it from therelease page.

If you havecargo-binstall installed,then you can install the pre-built artifacts by running:

cargo binstall wasm-bindgen-cli

Example

Import JavaScript things into Rust and export Rust things to JavaScript.

use wasm_bindgen::prelude::*;// Import the `window.alert` function from the Web.#[wasm_bindgen]extern"C"{fnalert(s:&str);}// Export a `greet` function from Rust to JavaScript, that alerts a// hello message.#[wasm_bindgen]pubfngreet(name:&str){alert(&format!("Hello, {}!", name));}

Use exported Rust things from JavaScript with ECMAScript modules!

import{greet}from"./hello_world";greet("World!");

Features

  • Lightweight. Only pay for what you use.wasm-bindgen only generatesbindings and glue for the JavaScript imports you actually use and Rustfunctionality that you export. For example, importing and using thedocument.querySelector method doesn't causeNode.prototype.appendChild orwindow.alert to be included in the bindings as well.

  • ECMAScript modules. Just import WebAssembly modules the same way you wouldimport JavaScript modules. Future compatible withWebAssembly modules andECMAScript modules integration.

  • Designed with the"Web IDL bindings" proposal in mind.Eventually, there won't be any JavaScript shims between Rust-generated wasmfunctions and native DOM methods. Because the Wasm functions are staticallytype checked, some of those native methods' dynamic type checks should becomeunnecessary, promising to unlock even-faster-than-JavaScript DOM access.

Guide

📚 Read thewasm-bindgen guide here! 📚

You can find general documentation about using Rust and WebAssembly togetherhere.

API Docs

MSRV Policy

Libraries that are released oncrates.io have a MSRV of v1.57. Changes to the MSRV will be accompanied by a minor version bump.

CLI tools and their corresponding support libraries have a MSRV of v1.76. Changes to the MSRV will be accompanied by a patch version bump.

License

This project is licensed under either of

at your option.

Contribution

See the "Contributing" section of the guide for information onhacking onwasm-bindgen!

Unless you explicitly state otherwise, any contribution intentionally submittedfor inclusion in this project by you, as defined in the Apache-2.0 license,shall be dual licensed as above, without any additional terms or conditions.

About

Facilitating high-level interactions between Wasm modules and JavaScript

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Code of conduct

Stars

Watchers

Forks

Sponsor this project

 

Languages


[8]ページ先頭

©2009-2025 Movatter.jp