Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/domoritz/arrow-wasm
Apache Arrow in WebAssembly
https://github.com/domoritz/arrow-wasm
Last synced: about 2 months ago
JSON representation
Apache Arrow in WebAssembly
- Host: GitHub
- URL: https://github.com/domoritz/arrow-wasm
- Owner: domoritz
- License: apache-2.0
- Created: 2021-01-22T22:59:57.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-09-25T04:39:39.000Z (12 months ago)
- Last Synced: 2024-07-28T18:20:59.547Z (about 2 months ago)
- Language: Rust
- Homepage:
- Size: 17.2 MB
- Stars: 78
- Watchers: 7
- Forks: 9
- Open Issues: 17
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE_APACHE.txt
Awesome Lists containing this project
README
# WASM Arrow ![.github/workflows/test.yml](https://github.com/domoritz/arrow-wasm/workflows/.github/workflows/test.yml/badge.svg) [![npm version](https://img.shields.io/npm/v/arrow-wasm.svg)](https://www.npmjs.com/package/arrow-wasm)
This package compiles the Rust library of [Apache Arrow](https://arrow.apache.org/) to WebAssembly. This might be a viable alternative to the [pure JavaScript library](https://arrow.apache.org/docs/js/). 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