Apache Arrow in WebAssembly

Usage no npm install needed!

<script type="module">
  import arrowWasm from '';


WASM Arrow .github/workflows/test.yml npm version

This package compiles the Rust library of Apache Arrow to WebAssembly. This might be a viable alternative to the pure JavaScript library. Right now, this library is incomplete and the API will change so we recommend using JavaScript library.

You can try this library in Observable at


Coming later. The API is somewhat similar to the Rust version ( although there are some differences to make the API more familiar to JavaScript users.

Building and testing


Run with wasm-pack build --target nodejs && node examples/flights.js.

To use a debug build, run wasm-pack build --target nodejs --dev && node examples/flights.js.


Build with wasm-pack build --target web. Then run python3 -m http.server and open http://localhost:8000/examples/.


Run npm publish to build a bundle and release it to NPM.


Run cargo fmt && cargo clippy before committing.

Check file size

We can check how large the WASM file is after compression (which every web server probably does).

gzip -9 <pkg//arrow_wasm_bg.wasm | wc -c