Skip to content

Apache Arrow in WebAssembly

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE_APACHE.txt
MIT
LICENSE_MIT.txt
Notifications You must be signed in to change notification settings

marcprux/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 example/flights.js.

To use a debug build, run wasm-pack build --target nodejs --dev && node example/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

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE_APACHE.txt
MIT
LICENSE_MIT.txt

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 98.0%
  • JavaScript 1.7%
  • TypeScript 0.3%