# Running `wasm-bindgen`
> **Note**: Usage of `wasm-bindgen` and WebAssembly Interface Types is highly
> experimental, it's recommended that you expect breakage and/or surprises if
> you're using this.
> **Note**: When building your crate with WebAssembly Interface Types enabled
> via `wasm-bindgen`, due to a bug in `wasm-bindgen`, it is currently necessary
> to build in release mode, i.e., `cargo wasi build --release`.
The [`wasm-bindgen` project](https://github.com/rustwasm/wasm-bindgen) is
primarily targeted at JavaScript and the web, but is also becomimg the primary
experiment grounds of WebAssembly Interface Types for Rust. If you're not using
interface types you probably don't need `wasm-bindgen`, but if you're using
interface types read on!
The `cargo wasi` subcommand will automatically detect when
`wasm-bindgen`-the-crate is used in your dependency graph. When this is seen
then `cargo wasi` will download the corresponding precompiled `wasm-bindgen` CLI
binary (or `cargo install` it) and execute that over the final WebAssembly file.
Currently no configuration for `wasm-bindgen` is supported because the support
for WebAssembly Interface Types is unconditionally enabled which takes no
configuration. This aspect of `cargo wasi` is highly likely to change and get
improved over time though!