8个版本

1.0.0-beta.2 2022年12月22日
0.7.1 2024年8月23日
0.6.0 2024年8月14日
0.5.4 2024年5月31日
0.5.1 2023年1月17日

#184 in 魔法豆

Download history 9099/week @ 2024-05-03 9299/week @ 2024-05-10 8458/week @ 2024-05-17 8015/week @ 2024-05-24 9789/week @ 2024-05-31 8809/week @ 2024-06-07 10333/week @ 2024-06-14 12397/week @ 2024-06-21 9998/week @ 2024-06-28 9201/week @ 2024-07-05 10606/week @ 2024-07-12 13870/week @ 2024-07-19 8752/week @ 2024-07-26 11172/week @ 2024-08-02 11462/week @ 2024-08-09 8452/week @ 2024-08-16

41,526 每月下载量
用于 36 个crate (11 直接)

Apache-2.0

74KB
2K SLoC

ethereum_ssz

SimpleSerialize (SSZ)实现,针对速度和安全优化。

由Sigma Prime维护,用于Lighthouse,并考虑在更广泛的Rust以太坊生态系统中有用。我们欢迎新的贡献者!

请参阅文档以获取更多信息。


lib.rs:

提供SimpleSerialize (SSZ)格式的编码(序列化)和解码(反序列化),该格式设计用于在以太坊2.0中使用。

遵循以太坊2.0 SSZ规范 v0.12.1。

示例

use ssz_derive::{Encode, Decode};
use ssz::{Decode, Encode};

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

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

    let ssz_bytes: Vec<u8> = foo.as_ssz_bytes();

    let decoded_foo = Foo::from_ssz_bytes(&ssz_bytes).unwrap();

    assert_eq!(foo, decoded_foo);
}

请参阅examples/以查看手动实现EncodeDecode特征的示例。

依赖项

~5.5MB
~106K SLoC