28个发布版本
0.1.27 | 2024年4月8日 |
---|---|
0.1.24 | 2024年2月1日 |
0.1.21 | 2023年11月10日 |
0.1.19 | 2023年1月23日 |
0.1.4 | 2021年6月27日 |
#592 in 网络编程
6,660次每月下载
用于 57 个crate(17个直接使用)
240KB
4.5K SLoC
字节
用于处理字节的实用库。这是bytes crate(https://github.com/tokio-rs/bytes)的分支
用法
要使用ntex-bytes
,首先将以下内容添加到您的Cargo.toml
[dependencies]
ntex-bytes = "0.1"
接下来,将以下内容添加到您的crate中
use ntex_bytes::{Bytes, BytesMut, Buf, BufMut};
Serde支持
Serde支持是可选的,默认禁用。要启用,请使用功能serde
。
[dependencies]
ntex-bytes = { version = "0.1", features = ["serde"] }
许可证
- Apache许可证第2版,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
lib.rs
:
提供用于处理字节的抽象。
这是bytes crate的分支
ntex-bytes
crate提供了一个高效的字节缓冲区结构(Bytes
)和用于处理缓冲区实现的特性(Buf
、BufMut
)。
字节
Bytes
是一个用于存储和操作连续内存切片的高效容器。它主要用于网络代码,但也可能在其他地方有应用。
Bytes
值通过允许多个Bytes
对象指向相同的底层内存来促进零拷贝网络编程。这通过使用引用计数来跟踪何时内存不再需要并可以释放来管理。
可以从现有的字节数组(例如 &[u8]
或 Vec<u8>
)直接创建一个 Bytes
处理句柄,但通常首先使用 BytesMut
并写入数据。例如
use ntex_bytes::{BytesMut, BufMut};
let mut buf = BytesMut::with_capacity(1024);
buf.put(&b"hello world"[..]);
buf.put_u16(1234);
let a = buf.split();
assert_eq!(a, b"hello world\x04\xD2"[..]);
buf.put(&b"goodbye world"[..]);
let b = buf.split();
assert_eq!(b, b"goodbye world"[..]);
assert_eq!(buf.capacity(), 998);
在上面的例子中,仅分配了一个 1024 字节的缓冲区。处理句柄 a
和 b
将共享底层缓冲区,并维护索引以跟踪由句柄表示的缓冲区视图。
有关更多详细信息,请参阅结构体文档。
依赖关系
~340–680KB
~14K SLoC