6 releases ()
1.0.0-beta.2 | Dec 22, 2022 |
---|---|
0.5.3 | Jun 14, 2023 |
0.5.2 | Mar 13, 2023 |
0.5.1 | Jan 17, 2023 |
0.5.0 | Jan 16, 2023 |
#1964 in Magic Beans
38,175 downloads per month
Used in 14 crates
(4 directly)
71KB
2K
SLoC
ethereum_ssz
SimpleSerialize (SSZ) implementation optimised for speed and security.
Maintained by Sigma Prime for use in Lighthouse, with an eye to being useful in the Rust Ethereum ecosystem more broadly. We welcome new contributors!
Please see the docs for more information.
lib.rs
:
Provides encoding (serialization) and decoding (deserialization) in the SimpleSerialize (SSZ) format designed for use in Ethereum 2.0.
Adheres to the Ethereum 2.0 SSZ specification at v0.12.1.
Example
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);
}
See examples/
for manual implementations of the Encode
and Decode
traits.
Dependencies
~1MB
~17K SLoC