#buffer #networking #buf #vec #byte-buffer #read-write #io

netbuf

简单易用、可增长、连续的缓冲区对象,具有正确的假设和接口。针对网络缓冲区使用进行了调整。

15 个版本

使用旧的 Rust 2015

0.4.1 2018年4月14日
0.4.0 2017年3月18日
0.3.8 2016年12月12日
0.3.7 2016年11月24日
0.1.0 2015年7月24日

#327 in 内存管理

Download history • Rust 包仓库 64/week @ 2023-12-11 • Rust 包仓库 68/week @ 2023-12-18 • Rust 包仓库 31/week @ 2023-12-25 • Rust 包仓库 13/week @ 2024-01-01 • Rust 包仓库 61/week @ 2024-01-08 • Rust 包仓库 37/week @ 2024-01-15 • Rust 包仓库 38/week @ 2024-01-22 • Rust 包仓库 17/week @ 2024-01-29 • Rust 包仓库 42/week @ 2024-02-05 • Rust 包仓库 53/week @ 2024-02-12 • Rust 包仓库 82/week @ 2024-02-19 • Rust 包仓库 112/week @ 2024-02-26 • Rust 包仓库 87/week @ 2024-03-04 • Rust 包仓库 111/week @ 2024-03-11 • Rust 包仓库 96/week @ 2024-03-18 • Rust 包仓库 110/week @ 2024-03-25 • Rust 包仓库

411 每月下载量
用于 20 个crates (8 个直接)

MIT/Apache

40KB
867

Netbuf

文档 | Github | Crate

用于异步网络应用程序的网络缓冲区。具有从网络读取到Buf的正确接口,并可以直接从它解析数据包。它还针对网络应用程序的容量管理进行了调整(即它开始快速增长,但对于空闲连接则会释放)。

许可证

许可协议为以下之一

贡献

除非您明确声明,否则您提交给作品以供包含的任何贡献,根据Apache-2.0许可证的定义,应如上所述双重许可,而不附加任何额外的条款或条件。


lib.rs:

Netbuf

文档 | Github | Crate

此模块目前包括单个用于存储缓冲区的Buf结构。与Vec类缓冲区相比,具有不同的分配策略,并具有已消耗数据的标记(即已由协议解析器处理或已写入套接字)

Buf被认为是输入和输出网络缓冲区的良好选择。

它还包含辅助方法 read_fromwrite_to,分别用于从实现Read的对象中读取并追加字节,以及将字节从缓冲区写入实现Write的对象。

注意基本上有三种方法可以填充缓冲区

  • Buf::read_from -- 预分配一些块并将其提供给实现Read的对象
  • Write::write -- 将块写入缓冲区,假设不久将会有更多数据,即它进行大预分配
  • Buf::extend -- 在假设近期不会增长的情况下将块写入缓冲区,因此分配最小块来保存数据

换句话说,你应该使用

  • Buf::read_from -- 来从网络读取
  • Write::write -- 当你直接将对象增量地写入缓冲区时
  • Buf::extend -- 当你将整个对象放入适当位置并将其交给网络代码发送时

更多文档可以在Buf对象本身找到

无运行时依赖