# Importing non-browser JS [View full source code][code] [code]: https://github.com/rustwasm/wasm-bindgen/tree/master/examples/import_js The `#[wasm_bindgen]` attribute can be used on `extern { .. }` blocks to import functionality from JS. This is how the `js-sys` and the `web-sys` crates are built, but you can also use it in your own crate! For example if you're working with this JS file: ```js // defined-in-js.js {{#include ../../../examples/import_js/defined-in-js.js}} ``` you can use it in Rust with: ```rust {{#include ../../../examples/import_js/src/lib.rs}} ``` You can also [explore the full list of ways to configure imports][attr] [attr]: ../reference/attributes/on-js-imports/index.html