apache / apache/arrow-js

[JS] Implement C Data Interface

Open
#88 7 comments 1 reaction 0 assignees View on GitHub
Type: enhancement
Dominant language
TypeScript
Stars
112
Forks
23
Avg merge
21h 18m
Merged PRs (30d)
8

Description

I've recently been working on an implementation of the C Data Interface for Arrow JS, the idea being that Arrow JS can read memory from WebAssembly this way without a copy ([blog post](https://observablehq.com/@kylebarron/zero-copy-apache-arrow-with-webassembly), [repo](https://github.com/kylebarron/arrow-js-ffi)). Dominik [suggested](https://twitter.com/domoritz/status/1562670919469842432?s=20&t=Ts8HQe_fzgRmecUP1Qrhrw) starting a discussion about potentially adding this into Arrow JS.

My implementation is still WIP but figure it's not too early to start a discussion. A couple notes:

- I'm focused only on reading FFI memory, so I only have parsing code. I figure writing doesn't really make sense in JS since Wasm can't access arbitrary JS memory
- In order to generate FFI memory in the tests, I'm using a small Rust module to convert from an IPC table. If we didn't want to add a rust build step in the tests, that module could be published to NPM

Thoughts?

**Reporter**: [Kyle Barron](https://issues.apache.org/jira/browse/ARROW-17608)

**Note**: *This issue was originally created as [ARROW-17608](https://issues.apache.org/jira/browse/ARROW-17608). Please see the [migration documentation](https://github.com/apache/arrow/issues/14542) for further details.*

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.