#codec #transfer #chunked #http #rfc #decoder #encoder

chunked_transfer

HTTP分块传输编码(RFC 7230 § 4.1)的编码器和解码器

10个版本 (稳定)

1.5.0 2023年11月23日
1.4.1 2022年12月27日
1.4.0 2021年1月30日
1.3.0 2020年10月6日
0.3.1 2015年5月5日

#17 in HTTP客户端

Download history 151298/week @ 2024-04-27 141838/week @ 2024-05-04 159815/week @ 2024-05-11 164821/week @ 2024-05-18 160236/week @ 2024-05-25 182861/week @ 2024-06-01 183990/week @ 2024-06-08 173544/week @ 2024-06-15 186753/week @ 2024-06-22 176048/week @ 2024-06-29 190196/week @ 2024-07-06 180017/week @ 2024-07-13 186252/week @ 2024-07-20 179693/week @ 2024-07-27 175330/week @ 2024-08-03 166483/week @ 2024-08-10

738,086 每月下载量
用于 478 个crate(直接使用11个)

MIT/Apache

18KB
357

rust-chunked-transfer

文档

HTTP分块传输编码的编码器和解码器。更多关于分块传输编码的信息,请参考

示例

解码

use chunked_transfer::Decoder;
use std::io::Read;

let encoded = b"3\r\nhel\r\nb\r\nlo world!!!\r\n0\r\n\r\n";
let mut decoded = String::new();

let mut decoder = Decoder::new(encoded as &[u8]);
decoder.read_to_string(&mut decoded);

assert_eq!(decoded, "hello world!!!");

编码

use chunked_transfer::Encoder;
use std::io::Write;

let mut decoded = "hello world";
let mut encoded: Vec<u8> = vec![];

{
    let mut encoder = Encoder::with_chunks_size(&mut encoded, 5);
    encoder.write_all(decoded.as_bytes());
}

assert_eq!(encoded, b"5\r\nhello\r\n5\r\n worl\r\n1\r\nd\r\n0\r\n\r\n");

作者

许可

许可方式为

贡献

除非您明确声明,否则您有意提交以包含在工作中的任何贡献,根据Apache-2.0许可证定义,应以上述方式双许可,不附加任何额外条款或条件。

无运行时依赖