#codec #future #async #frame #byte #framed #decoding

futures_codec

使用 async/await 编解码帧的实用工具

16 个不稳定版本 (3 个重大变更)

0.4.1 2020 年 6 月 21 日
0.4.0 2020 年 1 月 26 日
0.3.4 2019 年 12 月 14 日
0.3.3 2019 年 11 月 29 日
0.2.5 2019 年 7 月 22 日

#961异步

Download history 5431/week @ 2024-03-14 6632/week @ 2024-03-21 6836/week @ 2024-03-28 5983/week @ 2024-04-04 5825/week @ 2024-04-11 5379/week @ 2024-04-18 5075/week @ 2024-04-25 5725/week @ 2024-05-02 6425/week @ 2024-05-09 4849/week @ 2024-05-16 4823/week @ 2024-05-23 5092/week @ 2024-05-30 5337/week @ 2024-06-06 5814/week @ 2024-06-13 7628/week @ 2024-06-20 6052/week @ 2024-06-27

每月下载量 25,855
不到 15 个 crates 中使用

MIT 许可证

42KB
872

futures_codec

使用 async/await 编解码帧的实用工具。

包含将字节流、AsyncReadAsyncWrite 转换为实现 SinkStream 的帧流的适配器。帧流也称为传输。

Latest Version Rust Documentation Build Status LICENSE

示例

use futures_codec::{LinesCodec, Framed};

async fn main() {
    // let stream = ...
    let mut framed = Framed::new(stream, LinesCodec {});

    while let Some(line) = framed.try_next().await.unwrap() {
        println!("{:?}", line);
    }
}

lib.rs:

使用 async/await 编解码帧的实用工具。

包含将字节流、AsyncReadAsyncWrite 转换为实现 SinkStream 的帧流的适配器。帧流也称为 transports

use futures::TryStreamExt;
use futures::io::Cursor;
use futures_codec::{LinesCodec, Framed};

let io = Cursor::new(Vec::new());
let mut framed = Framed::new(io, LinesCodec);

while let Some(line) = framed.try_next().await? {
    dbg!(line);
}

依赖项

~2.2–3MB
~64K SLoC