GitHub - rustwasm/wasm-bindgen: Facilitating high-level interactions between Wasm modules and JavaScript (original) (raw)

Install wasm-bindgen-cli

You can install it using cargo install:

cargo install wasm-bindgen-cli

Or, you can download it from therelease page.

If you have cargo-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" { fn alert(s: &str); }

// Export a greet function from Rust to JavaScript, that alerts a // hello message. #[wasm_bindgen] pub fn greet(name: &str) { alert(&format!("Hello, {}!", name)); }

Use exported Rust things from JavaScript with ECMAScript modules!

import { greet } from "./hello_world";

greet("World!");

Features

Guide

📚 Read the wasm-bindgen guide here! 📚

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

API Docs

MSRV Policy

Libraries that are released on crates.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 on hacking on wasm-bindgen!

Unless you explicitly state otherwise, any contribution intentionally submitted for 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.