1. Introduction
  2. Examples
    1. Hello, World!
    2. Using console.log
    3. Small Wasm files
    4. Without a Bundler
    5. Synchronous Instantiation
    6. Importing functions from JS
    7. Working with char
    8. js-sys: WebAssembly in WebAssembly
    9. web-sys: DOM hello world
    10. web-sys: Closures
    11. web-sys: performance.now
    12. web-sys: using fetch
    13. web-sys: Weather report
    14. web-sys: canvas hello world
    15. web-sys: canvas Julia set
    16. web-sys: WebAudio
    17. web-sys: WebGL
    18. web-sys: WebSockets
    19. web-sys: WebRTC DataChannel
    20. web-sys: requestAnimationFrame
    21. web-sys: A Simple Paint Program
    22. web-sys: Wasm in Web Worker
    23. Parallel Raytracing
    24. Wasm Audio Worklet
    25. web-sys: A TODO MVC App
  3. Reference
    1. Working with Generics
    2. Deployment
    3. Community Projects
    4. JS snippets
    5. Static JS Objects
    6. Passing Rust Closures to JS
    7. Receiving JS Closures in Rust
    8. Promises and Futures
    9. Iterating over JS Values
    10. Arbitrary Data with Serde
    11. Accessing Properties of Untyped JS Values
    12. Working with Duck-Typed Interfaces
    13. Command Line Interface
    14. Optimizing for Size
    15. Debug information
    16. Supported Rust Targets
    17. Supported Browsers
    18. Support for Weak References
    19. Support for Reference Types
    20. Catching Panics
    21. Handling Aborts
    22. Supported Types
      1. Imported JavaScript Types
      2. Exported Rust Types
      3. JsValue
      4. js-sys
      5. Box<[T]> and Vec<T>
      6. *const T and *mut T
      7. NonNull<T>
      8. Numbers
      9. bool
      10. char
      11. str
      12. String
      13. Number Slices
      14. Boxed Number Slices
      15. Result<T, E>
    23. #[wasm_bindgen] Attributes
      1. On JavaScript Imports
        1. catch
        2. constructor
        3. extends
        4. getter and setter
        5. final
        6. indexing_getter, indexing_setter, and indexing_deleter
        7. js_class = "Blah"
        8. js_name
        9. js_namespace
        10. method
        11. module = "blah"
        12. raw_module = "blah"
        13. no_deref
        14. no_upcast
        15. no_promising
        16. reexport
        17. static_method_of = Blah
        18. structural
        19. typescript_type
        20. variadic
        21. vendor_prefix
      2. On Rust Exports
        1. constructor
        2. js_name = Blah
        3. js_namespace
        4. js_class = Blah
        5. readonly
        6. skip
        7. skip_jsdoc
        8. start
        9. main
        10. this
        11. typescript_custom_section
        12. getter and setter
        13. inspectable
        14. skip_typescript
        15. getter_with_clone
        16. private
        17. unchecked_return_type, unchecked_param_type, and unchecked_optional_param_type
        18. return_description and param_description
  4. web-sys
    1. Using web-sys
    2. Cargo Features
    3. Function Overloads
    4. Type Translations
    5. Inheritance
    6. Unstable APIs
  5. Testing with wasm-bindgen-test
    1. Usage
    2. Writing Asynchronous Tests
    3. Testing in Headless Browsers
    4. Continuous Integration
    5. Coverage (Experimental)
    6. Benchmark
  6. Contributing to wasm-bindgen
    1. Testing
    2. Internal Design
      1. JS Objects in Rust
      2. Exporting a function to JS
      3. Exporting a struct to JS
      4. Importing a function from JS
      5. Importing a class from JS
      6. Rust Type conversions
      7. Types in wasm-bindgen
    3. js-sys
      1. Testing
      2. Adding More APIs
    4. web-sys
      1. Overview
      2. Testing
      3. Logging
      4. Supporting More Web APIs
    5. Publishing
    6. Governance
    7. Team