3个版本
0.1.3 | 2019年7月26日 |
---|---|
0.1.2 |
|
0.1.1 | 2019年7月25日 |
0.1.0 | 2018年10月16日 |
#1400在编码
每月下载量53
在2个crate中使用(通过constellation-rs)
47KB
1.5K SLoC
serde_pipe
将serde+bincode转换为管道:推送T
和拉取u8
,或反之。
此库为您提供Serializer
管道,您可以将其中的T
推送,并将u8
拉取;以及一个Deserializer
管道,您可以将其中的u8
推送,并将T
拉取。
默认情况下,此操作通过分配一个向量来保存中间的u8
。但是,可以启用fringe
功能,它使用libfringe将serde+bincode转换为生成器,从而实现有限的内存使用。
示例
use serde_pipe::Serializer;
let large_vector = (0..1u64<<30).collect::<Vec<_>>();
let mut serializer = Serializer::new();
serializer.push().unwrap()(large_vector);
while let Some(pull) = serializer.pull() {
let byte = pull();
println!("byte! {}", byte);
}
注意
fringe
功能依赖于libfringe,因此启用它将继承这些限制
- 需要Rust nightly版本才能使用
asm
和naked_functions
功能; - 目前支持的平台有:x86、x86_64、aarch64、or1k;
- 目前支持的平台有:裸金属、Linux(任何libc)、FreeBSD、DragonFly BSD、macOS。Windows不受支持。
许可
许可协议为以下之一:
- Apache License,版本2.0(LICENSE-APACHE.txt或http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可协议(LICENSE-MIT.txt或http://opensource.org/licenses/MIT)
任选其一。
除非您明确声明,否则您提交的任何有意包含在作品中的贡献,根据Apache-2.0许可协议定义,应按上述方式双重许可,无需任何附加条款或条件。
依赖项
~370–660KB
~15K SLoC