gballet / ssz.zig

A ziglang implementation of the SSZ serialization protocol
The Unlicense
21 stars 6 forks source link

Lint and test

ssz.zig

A Zig implementation of the SSZ serialization protocol.

Tested with zig 0.13.0.

Serialization

Use serialize to write a serialized object to a byte buffer.

Currently supported types:

Ziglang has the limitation that it's not possible to determine which union field is active without tags.

Deserialization

Use deserialize to turn a byte array containing a serialized payload, into an object.

deserialize does not allocate any new memory. Scalar values will be copied, and vector values use references to the serialized data. Make a copy of the data if you need to free the serialized payload. Future versions will include a version of deserialize that expects an allocator.

Supported types:

Merkelization (experimental)

Use tree_root_hash to calculate the root hash of an object.

Supported types:

Contributing

Simply create an issue or a PR.