Skip to content

li3zhen1/arrow-wasm

 
 

Repository files navigation

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 https://observablehq.com/@domoritz/apache-arrow-in-webassembly.

Documentation

Coming later. The API is somewhat similar to the Rust version (https://docs.rs/arrow/3.0.0/arrow/) although there are some differences to make the API more familiar to JavaScript users.

Building and testing

Node

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.

Browser

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

Publishing

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

Linting

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

About

Apache Arrow in WebAssembly

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 91.0%
  • JavaScript 8.8%
  • TypeScript 0.2%