如何在没有内存复制的情况下将 JS TypedArray 用作 Rust BufRead/Read?

How to use JS TypedArray as Rust BufRead/Read without memory copying?

我需要 Uint8Array 的形式 BufRead or Read

我可以使用 to_vec 之类的东西复制整个内存并构建某种类型的 BufRead/Read 但我不想这样做,因为我正在处理的数组可以很大 (50~100mb)

我想为了做到这一点,我必须获得可变连续内存块的地址,可能是 *mut [u8] 类型。 (我还不熟悉 Rust,所以语法可能不正确,但希望你能理解)。 但是我无法从 Uint8Array doc.

中找到合适的方法

可能吗?如果可以,我该怎么做?

您必须复制数据。 WebAssembly 不能直接访问 JavaScript 环境中的内存,必须复制过来。使用 to_vec 是正确的方法。