1 个不稳定版本

0.4.0 2021年12月6日

#12 in #ssz

Apache-2.0

57KB
1.5K SLoC

simpleserialize-bigendian (sszb)

与 ssz 相同,但使用 BigEndian 符号。


lib.rs:

提供 SimpleSerialize (SSZ) 格式(用于 Ethereum 2.0)中的编码(序列化)和解码(反序列化)。

遵循 Ethereum 2.0 的规范,但端序已切换至 v0.12.1 的 SSZ 规范

示例

use sszb_derive::{Encode, Decode};
use sszb::{Decode, Encode};

#[derive(PartialEq, Debug, Encode, Decode)]
struct Foo {
    a: u64,
    b: Vec<u16>,
}

fn sszb_encode_decode_example() {
    let foo = Foo {
        a: 42,
        b: vec![1, 3, 3, 7]
    };

    let sszb_bytes: Vec<u8> = foo.as_sszb_bytes();

    let decoded_foo = Foo::from_sszb_bytes(&sszb_bytes).unwrap();

    assert_eq!(foo, decoded_foo);
}

请参阅 examples/ 中对 EncodeDecode 特性的手动实现。

依赖项

~2MB
~50K SLoC