12 个版本

0.1.15 2024 年 8 月 15 日
0.1.14 2024 年 8 月 15 日
0.1.7 2024 年 6 月 23 日

#48#messagepack

Download history 312/week @ 2024-06-17 47/week @ 2024-06-24 77/week @ 2024-07-01 81/week @ 2024-07-29 523/week @ 2024-08-12

604 每月下载次数
用于 wyre

MIT 许可证

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