3 个版本
0.1.3 | 2021 年 10 月 15 日 |
---|---|
0.1.2 | 2021 年 10 月 15 日 |
0.1.1 | 2021 年 10 月 15 日 |
#880 在 并发
11KB
153 行
📖 channel_io
一个小型的辅助库,用于将 flume
通道中的 Bytes
转换为实现了 {Read,Write}
的 Channel{Reader,Writer}
。
示例
use std::io::Read;
use bytes::Bytes;
use channel_reader::ChannelReader;
use flume::bounded;
fn main() {
let (tx, rx) = bounded(10);
let sender_thread = std::thread::spawn(move || {
for i in 0..10 {
let buffer = Bytes::from(vec![i; 10]);
tx.send(buffer).unwrap();
}
});
sender_thread.join().unwrap();
let mut reader = ChannelReader::new(rx);
let mut buffer = vec![];
reader.read_to_end(&mut buffer).unwrap();
assert_eq!(buffer.len(), 100);
}
为什么选择 flume?
目标是连接一个异步读取器(在这种情况下是 Glommio 中的 DmaStreamReader)到一个同步读取器。
为什么选择 bytes?
我喜欢它的 API,理论上,根据调用者如何处理数据块,同步发送方的内存可以被重用。
依赖项
~390KB