使用 Apache Arrow 格式将数据从 Node.js 传递到 Rust 的最佳方法是什么?用每种语言存储数据很容易,但共享内存给我带来了挑战。
我正在使用Napi-rs生成 node.js API 绑定。
对于下面的 JavaScript 代码,我收到“无法从缓冲区创建引用”的消息。当我尝试传递arrowVector.data[0].buffers给 rust 函数时,我得到 "../src/node_buffer.cc:245:char *node::Buffer::Data(Local<v8::Value>): Assertion `val->IsArrayBufferView() ' 失败的。”
我想我在这里缺少一些核心内容。
这是我的示例节点测试代码:
import { makeVector } from 'apache-arrow';
import {testFn} from './index.js';
// Create arrow Vec
const LENGTH = 2000;
const rainAmounts = Float32Array.from(
{ length: LENGTH },
() => Number((Math.random() * 20).toFixed(1)));
const arrowVector = makeVector(rainAmounts);
// how to get buffers from vec? and send to rust function
testFn(arrowVector);
Run Code Online (Sandbox Code Playgroud)
这是我的 Rust 代码示例: …