[JS] Implement C Data Interface
- 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
Assessment
This issue has not been assessed yet.