mirror of
https://github.com/rustwasm/wasm-bindgen.git
synced 2024-12-28 20:43:23 +03:00
Facilitating high-level interactions between Wasm modules and JavaScript
21063fd42f
This commit makes these changes: * Unsupported constructs always log "unsupported" for easy `grep`ing * There is always a "<generic message> : <details>" format now, so we can easily use `cut` to grab the generic message and count which kinds of things are our biggest missing features. * Make sure that we have different `warn!` logs for each kind of unsupported thing, instead of grouping them together. Put all that together and this is the current state of `wasm-bindgen-webidl` and `web-sys`: ``` $ grep WARN stderr.txt | grep wasm_bindgen_webidl | grep -i unsupported | cut -d ' ' -f5- | cut -d ':' -f 1 | sort | uniq -c | sort -rn 387 Unsupported WebIDL Dictionary definition 139 Unsupported argument type 70 Unsupported return type 47 Unsupported WebIDL Callback definition 22 Unsupported WebIDL extended attribute 18 Unsupported unnamed operation 9 Unsupported WebIDL CallbackInterface definition 7 Unsupported WebIDL Stringifier interface member 7 Unsupported WebIDL Maplike interface member 2 Unsupported webidl stringifier 2 Unsupported WebIDL Setlike interface member 2 Unsupported stringifier on type ``` |
||
---|---|---|
.cargo | ||
crates | ||
examples | ||
guide | ||
releases | ||
src | ||
tests | ||
.appveyor.yml | ||
.eslintignore | ||
.eslintrc | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
Cargo.toml | ||
CHANGELOG.md | ||
CONTRIBUTING.md | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
package-lock.json | ||
package.json | ||
README.md | ||
yarn.lock |
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.