1 个稳定版本
1.2.0 | 2024 年 1 月 3 日 |
---|
#915 in 编码
用于 wowsunpack
320KB
3.5K SLoC
Serde Pickle 序列化库
这是基于 https://crates.io/crates/serde-pickle 的一个分支,支持递归数据结构,并支持 variantly
以便更轻松地处理 pickled 数据。
此 CRATE 不适用于广泛使用,并且我不保证能成为一个好的项目负责人 (尽管我不会做坏事,但我不能保证我能支持这个 CRATE)
这是一个 Rust 库,用于解析和生成 Python pickle 流。它基于 Serde,一个高性能的泛型序列化框架。
安装
此 CRATE 与 Cargo 一起工作,可以在 crates.io 上找到,其中包含一个 Cargo.toml
文件。
[dependencies]
serde = "1.0"
pickled = "1.0"
需求
最低支持的 Rust 版本是 1.41.1。
使用
与其他 serde 序列化实现一样,此库提供了用于支持对象的简单编解码的顶级函数。
示例
use std::collections::BTreeMap;
fn main() {
let mut map = BTreeMap::new();
map.insert("x".to_string(), 1.0);
map.insert("y".to_string(), 2.0);
// Serialize the map into a pickle stream.
// The second argument are serialization options.
let serialized = pickled::to_vec(&map, Default::default()).unwrap();
// Deserialize the pickle stream back into a map.
// Because we compare it to the original `map` below, Rust infers
// the type of `deserialized` and lets serde work its magic.
// The second argument are additional deserialization options.
let deserialized = pickled::from_slice(&serialized, Default::default()).unwrap();
assert_eq!(map, deserialized);
}
支持序列化和反序列化实现 serde 提供的特质的结构和枚举,其工作方式类似于其他 CRATE(使用 serde_derive
)。
依赖项
~3–13MB
~157K SLoC