Access the pointer to the
ArrowArray
struct. This can be viewed or copied (without serialization) to an Arrow JS RecordBatch by
using arrow-js-ffi. You can access the
WebAssembly.Memory
instance by using wasmMemory.
Example:
import { parseRecordBatch } from "arrow-js-ffi";
const wasmRecordBatch: FFIRecordBatch = ...
const wasmMemory: WebAssembly.Memory = wasmMemory();
// Pass `true` to copy arrays across the boundary instead of creating views.
const jsRecordBatch = parseRecordBatch(
wasmMemory.buffer,
wasmRecordBatch.arrayAddr(),
wasmRecordBatch.schemaAddr(),
true
);
Access the pointer to the
ArrowSchema
struct. This can be viewed or copied (without serialization) to an Arrow JS Field by
using arrow-js-ffi. You can access the
WebAssembly.Memory
instance by using wasmMemory.
Example:
import { parseRecordBatch } from "arrow-js-ffi";
const wasmRecordBatch: FFIRecordBatch = ...
const wasmMemory: WebAssembly.Memory = wasmMemory();
// Pass `true` to copy arrays across the boundary instead of creating views.
const jsRecordBatch = parseRecordBatch(
wasmMemory.buffer,
wasmRecordBatch.arrayAddr(),
wasmRecordBatch.schemaAddr(),
true
);
An Arrow array exported to FFI.
Using
arrow-js-ffi, you can view or copy Arrow these objects to JavaScript.Note that this also includes an ArrowSchema C struct as well, so that extension type information can be maintained.
Memory management
Note that this array will not be released automatically. You need to manually call
.free()to release memory.