10个版本
新 0.1.15 | 2024年8月15日 |
---|---|
0.1.14 | 2024年8月15日 |
0.1.7 | 2024年6月23日 |
#319 in 数据结构
每月391次下载
125KB
3K SLoC
[wyre]
欢迎使用 wyre – 这是一款超级轻量级的序列化和通信包,效率极高,几乎可以在你睡觉时将数据序列化。如果你曾想过,“哇,我希望我的序列化像我的讽刺一样俏皮,”那么你就在正确的位置。
特性
- 二进制序列化:因为纯文本对于笨蛋来说太简单了。
- JSON序列化:当你想在朋友面前显得老练时。
- RON序列化:不是会计那边的家伙,而是Rusty Object Notation。
- MessagePack序列化:就像搬到一个小房子里一样 – 小而强大。
- TOML序列化:对于那些喜欢保持配置整洁的人。
- 自定义推导:基于宏的自定义推导支持结构体和枚举,因为编写样板代码已经过时了。
使用方法
首先,将 wyre
添加到你的 Cargo.toml
文件中。这一步至关重要。跳过它会导致...什么都不会工作。
[dependencies]
wyre = "0.1.0"
示例
这是一个简单的示例,让你开始。即使你的奶奶也能跟随这个示例 – 如果她喜欢Rust的话。
use wyre::{SerBin, DeBin, SerJson, DeJson, SerMsgPack, DeMsgPack};
#[derive(SerBin, DeBin, SerJson, DeJson, SerMsgPack, DeMsgPack, PartialEq, Debug)]
struct TestStruct {
a: u32,
b: String,
c: Vec<u8>,
}
fn main() {
let test_message = TestStruct {
a: 42,
b: "Hello, World!".to_string(),
c: vec![1, 2, 3, 4, 5],
};
// Binary Serialization
let serialized_bin = test_message.serialize_bin();
let deserialized_bin = TestStruct::deserialize_bin(&serialized_bin).unwrap();
assert_eq!(test_message, deserialized_bin);
println!("Binary serialization and deserialization succeeded! 🎉");
// JSON Serialization
let serialized_json = test_message.serialize_json();
let deserialized_json = TestStruct::deserialize_json(&serialized_json).unwrap();
assert_eq!(test_message, deserialized_json);
println!("JSON serialization and deserialization succeeded! 🎉");
// MessagePack Serialization
let serialized_msgpack = test_message.serialize_msgpack();
let deserialized_msgpack = TestStruct::deserialize_msgpack(&serialized_msgpack).unwrap();
assert_eq!(test_message, deserialized_msgpack);
println!("MessagePack serialization and deserialization succeeded! 🎉");
}
许可证
本项目采用MIT或Apache-2.0许可证。因为分享是关怀。
说句实话,在当今世界,每一行代码都只是从Stack Overflow和GitHub上复制粘贴的代码片段的美妙混合。
贡献
我们欢迎贡献!请参阅我们的贡献指南。不要害羞 – 直接加入吧!
依赖
~3.5MB