1 stable release
1.4.0 | Jun 26, 2021 |
---|
#2874 in Parser implementations
54 downloads per month
Used in 2 crates
(via kvarn-extensions)
25KB
462 lines
async-chunked-transfer
Note: The only difference between this and chunked_transfer
is
that you MUST call Encoder::finish
before dropping the encoder.
Encoder and decoder for HTTP chunked transfer coding. For more information about chunked transfer encoding:
Example
Decoding
use async_chunked_transfer::Decoder;
use tokio::io::AsyncReadExt;
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).await;
assert_eq!(decoded, "hello world!!!");
Encoding
use chunked_transfer::Encoder;
use tokio::io::AsyncWriteExt;
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()).await;
encoder.finish().await;
}
assert_eq!(encoded, b"5\r\nhello\r\n5\r\n worl\r\n1\r\nd\r\n0\r\n\r\n");
Authors
Dependencies
~2.1–7.5MB
~50K SLoC