#buffer #zero-copy #io

divbuf

可以递归分割成更小缓冲区的缓冲对象

4个版本 (2个重大更新)

使用旧Rust 2015

0.3.1 2018年12月8日
0.3.0 2018年10月27日
0.2.0 2018年7月1日
0.1.0 2018年3月2日

#2386数据结构

MIT 许可证

39KB
545

DivBuf

一个提供递归分割缓冲对象的库。

Build Status Crates.io CodeCov.io

文档

divbuf 包提供了一种名为 DivBufShared 的缓冲结构,可以高效且安全地分割成多个更小的缓冲区。每个子缓冲区都可以进一步分割,递归进行。提供了一种原始形式的范围锁定:无法创建重叠的可变子缓冲区。

此包类似于 bytes,但有一些关键的不同点

  • bytes 是一个COW包。数据将在尽可能多的对象之间共享,但有时数据将被复制到新的存储中。divbuf 则恰好相反,除非明确请求,否则永远不会复制数据。
  • BytesMut 对象始终只能访问其自己的数据。一旦创建了 BytesMut 对象,就没有其他方法可以修改或读取其数据,而不涉及该对象。另一方面,DivBufMut 可以与其 DivBufShared 共享数据。之后,可以从 DivBufShared 创建另一个 DivBufMut
  • bytes 包含处理小型数组的大量优化,例如内联存储。然而,其中一些优化会导致数据复制,这对 divbuf 来说是不可接受的。divbuf 因此不包括这些优化,而是针对处理大型数组进行优化。

许可证

divbuf 在MIT许可证下分发。有关详细信息,请参阅 LICENSE

无运行时依赖