#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 64/week @ 2023-12-11 68/week @ 2023-12-18 31/week @ 2023-12-25 13/week @ 2024-01-01 61/week @ 2024-01-08 37/week @ 2024-01-15 38/week @ 2024-01-22 17/week @ 2024-01-29 42/week @ 2024-02-05 53/week @ 2024-02-12 82/week @ 2024-02-19 112/week @ 2024-02-26 87/week @ 2024-03-04 111/week @ 2024-03-11 96/week @ 2024-03-18 110/week @ 2024-03-25

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对象本身找到

无运行时依赖