Which Crates Will Work Off-the-Shelf with WebAssembly?

    There are no system libraries in wasm, so any crate that tries to bind to asystem library won't work.

    Using C libraries will also probably fail to work, since wasm doesn't have astable ABI for cross-language communication, and cross-language linking for wasmis very finicky. Everyone wants this to work eventually, especially since is shipping their target by default now, but the story isn'tquite there yet.

    File I/O

    There are , but it isn'tshipping yet. Attempts to spawn on a thread on the target will panic, which triggers a wasm trap.

    So Which General Purpose Crates Tend to Work Off-the-Shelf with WebAssembly?

    Algorithms and Data Structures

    Crates that provide the implementation of a particularalgorithm or , for example A* graphsearch or splay trees, tend to work well with WebAssembly.

    Parsers

    — so longas they just take input and don't perform their own I/O — tend to workwell with WebAssembly.

    Crates that deal with the complexities of human language when expressed intextual form tend to work wellwith WebAssembly.

    Rust Patterns