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 内存管理
411 每月下载量
用于 20 个crates (8 个直接)
40KB
867 行
Netbuf
用于异步网络应用程序的网络缓冲区。具有从网络读取到Buf
的正确接口,并可以直接从它解析数据包。它还针对网络应用程序的容量管理进行了调整(即它开始快速增长,但对于空闲连接则会释放)。
许可证
许可协议为以下之一
- Apache License,版本2.0,(./LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可(./LICENSE-MIT 或 http://opensource.org/licenses/MIT),由您选择。
贡献
除非您明确声明,否则您提交给作品以供包含的任何贡献,根据Apache-2.0许可证的定义,应如上所述双重许可,而不附加任何额外的条款或条件。
lib.rs
:
Netbuf
此模块目前包括单个用于存储缓冲区的Buf
结构。与Vec
类缓冲区相比,具有不同的分配策略,并具有已消耗数据的标记(即已由协议解析器处理或已写入套接字)
Buf
被认为是输入和输出网络缓冲区的良好选择。
它还包含辅助方法 read_from
和 write_to
,分别用于从实现Read的对象中读取并追加字节,以及将字节从缓冲区写入实现Write的对象。
注意基本上有三种方法可以填充缓冲区
Buf::read_from
-- 预分配一些块并将其提供给实现Read的对象Write::write
-- 将块写入缓冲区,假设不久将会有更多数据,即它进行大预分配Buf::extend
-- 在假设近期不会增长的情况下将块写入缓冲区,因此分配最小块来保存数据
换句话说,你应该使用
Buf::read_from
-- 来从网络读取Write::write
-- 当你直接将对象增量地写入缓冲区时Buf::extend
-- 当你将整个对象放入适当位置并将其交给网络代码发送时
更多文档可以在Buf
对象本身找到