mirror of
https://github.com/fluencelabs/wasm-bindgen
synced 2025-06-29 04:31:33 +00:00
f5ab32a8bc803dec12ec1263c0f6f5f39eda3ae1
promise
type to js_sys::Promise
This does involve us losing the type argument present in the WebIDL, but for now that should be fine as we're exposing low-level bindings and it's not otherwise clear whether having a typed wrapper is a great option. Usage of `JsCast` can convert the incoming value to a different object fairly easily. The purpose of the `web-sys` crate is to expose functionality of the web, not necessarily take an opinionated stance on how it should be exposed. In that sense it should be able to work with the `Promise` as you would a typed promise in terms of no functionality is left out. That being said we'll likely want to be sure to reconsider this before 1.0-stabilizing the `web-sys` crate!
wasm-bindgen
Facilitating high-level interactions between wasm modules and JavaScript.
Import JavaScript things into Rust and export Rust things to JavaScript.
#![feature(use_extern_macros)]
extern crate wasm_bindgen;
use wasm_bindgen::prelude::*;
// Import the `window.alert` function from the Web.
#[wasm_bindgen]
extern {
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!");
Guide
📚 Read the wasm-bindgen
guide here! 📚
License
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
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.
Description
Languages
Rust
98.5%
JavaScript
1%
WebAssembly
0.3%
HTML
0.1%