TypedArray
TypedArray 描述了一个底层 二进制数据缓冲区 (opens in a new tab) 的类数组视图,
使用 TypedArray 允许你在 Node.js 和 Rust 之间无需复制或移动底层数据也可共享数据。
Buffer
Buffer (opens in a new tab) 是 JavaScript的
Uint8Array (opens in a new tab)
的子类,它经常用于在 Node.js 和 Rust 之间共享数据。
Buffer 可以通过 Vec<u8> 创建,如果你以这种方式创建 Buffer,Vec<u8> 的所有权将被转移给 v8,当 v8 GC Buffer 时,Vec<u8> 将被丢弃。
lib.rs
use napi::bindgen_prelude::*;
use napi_derive::napi;
#[napi]
pub fn create_buffer() -> Buffer {
vec![0, 1, 2].into()
}💡
底层的 Vec<u8> 不会以这种方式被移动或复制。