12 个版本
0.1.15 | 2024 年 8 月 15 日 |
---|---|
0.1.14 | 2024 年 8 月 15 日 |
0.1.7 | 2024 年 6 月 23 日 |
#48 在 #messagepack
604 每月下载次数
用于 wyre
79KB
1.5K SLoC
[wyre]
欢迎来到 wyre —— 超轻量级序列化和通信crate,效率极高,几乎在睡眠中就能序列化你的数据。如果你曾想过,“唉,我希望我的序列化能像我的讽刺一样机智,”那么你就在对的地方。
特性
- 二进制序列化:因为纯文本对笨蛋来说足够了。
- 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