7个版本
0.2.2 | 2023年9月10日 |
---|---|
0.2.1 | 2023年9月10日 |
0.1.1 | 2023年9月10日 |
0.0.2 | 2023年9月4日 |
#342 在 硬件支持
每月 33 次下载
20KB
396 行
超管
超管是一个用于创建和使用TUN设备的库。超管旨在作为 tun 的替代品,旨在改进命令行界面,并允许同时写入和读取多个队列。
超管不是tun的完美替代品
超管API与tun类似,但并不完全相同。此外,超管目前不是像tun那样跨平台的,但我计划将来实现它。
用法
要创建一个TUN设备,请使用DeviceBuilder
。有几种创建DeviceBuilder
的方式
超管::构建器()
DeviceBuilder::new()
或DeviceBuilder::default()
设备::构建器()
例如。
let device = builder()
.build()
.unwrap();
现在要写入一个Device
。要写入或读取一个Device
,您需要创建一个队列。有两种类型的队列:阻塞和非阻塞。
let device = builder()
.with_num_queues(2)
.build()
.unwrap();
let queue1 = device.queue(0);
let queue2 = device.queue_nonblocking(1);
queue2.write(&[some bytes here]);
let mut buf = [0; some size];
queue1.read(&mut buf);
阻塞和非阻塞队列都可以从同一个队列池中访问。队列池是在设备构建时创建的。您可以通过调用Device.create_queue()
将队列添加到池中,这将返回新队列的索引,以便于访问。
待办事项
- 文档
- 非阻塞队列
- IPv6 支持
- 跨平台支持
依赖项
~240KB