rkyv

Rust 的零拷贝反序列化框架。「Zero-copy deserialization framework for Rust」

Github星跟蹤圖

Resources

Learning Materials

  • The rkyv book covers the motivation, architecture, and major
    features of rkyv
  • The rkyv discord is a great place to get help with specific issues and meet
    other people using rkyv

Documentation

Benchmarks

  • The rust serialization benchmark is a
    shootout style benchmark comparing many rust serialization solutions. It includes special
    benchmarks for zero-copy serialization solutions like rkyv.

Sister Crates

  • bytecheck, which rkyv uses for validation
  • ptr_meta, which rkyv uses for pointer manipulation
  • rend, which rkyv uses for endian-agnostic features

Example

use rkyv::{
    archived_root,
    ser::{serializers::AllocSerializer, Serializer},
    Archive, Deserialize, Infallible, Serialize,
};
#[derive(Archive, Deserialize, Serialize, Debug, PartialEq)]
struct Test {
    int: u8,
    string: String,
    option: Option<Vec<i32>>,
}
let value = Test {
    int: 42,
    string: "hello world".to_string(),
    option: Some(vec![1, 2, 3, 4]),
};
let mut serializer = AllocSerializer::<256>::default();
serializer.serialize_value(&value).unwrap();
let bytes = serializer.into_serializer().into_inner();
let archived = unsafe { archived_root::<Test>(&bytes[..]) };
assert_eq!(archived.int, value.int);
assert_eq!(archived.string, value.string);
assert_eq!(archived.option, value.option);
let deserialized: Test = archived.deserialize(&mut Infallible).unwrap()
assert_eq!(deserialized, value);

Thanks

Thanks to all the sponsors that keep development sustainable. Special thanks to the following sponsors for going above and beyond supporting rkyv:

Platinum Sponsors

Dusk Network is the first privacy blockchain for financial applications. Our mission is to enable any size enterprise to collaborate at scale, meet compliance requirements, and ensure that transaction data remains confidential.

Bronze Sponsors

主要指標

概覽
名稱與所有者rkyv/rkyv
主編程語言Rust
編程語言Rust (語言數: 1)
平台Linux, Mac, Windows
許可證MIT License
所有者活动
創建於2020-11-05 07:11:05
推送於2025-04-17 12:50:10
最后一次提交
發布數76
最新版本名稱0.8.8 (發布於 )
第一版名稱v0.1.1 (發布於 )
用户参与
星數3.2k
關注者數20
派生數184
提交數1k
已啟用問題?
問題數438
打開的問題數48
拉請求數139
打開的拉請求數1
關閉的拉請求數28
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?