10个版本

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

#319 in 数据结构

Download history 144/week @ 2024-06-16 184/week @ 2024-06-23 24/week @ 2024-06-30 39/week @ 2024-07-07 33/week @ 2024-07-28 358/week @ 2024-08-11

每月391次下载

MIT 许可证

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