Skip to main content

Typed mutable SSZ views over cached and immutable binary merkle trees

Project description

https://raw.githubusercontent.com/ethereum/remerkleable/master/docs/_static/logo.png

remerkleable

https://img.shields.io/pypi/l/eth-remerkleable.svg https://img.shields.io/pypi/pyversions/eth-remerkleable.svg https://img.shields.io/pypi/status/eth-remerkleable.svg https://img.shields.io/pypi/implementation/eth-remerkleable.svg https://github.com/ethereum/remerkleable/workflows/Remerkleable%20Python%20CI/badge.svg

Re-merkle-able: Typed mutable SSZ views over cached and immutable binary Merkle trees.

Features

  • Types:
    • custom byte-vector and byte-list view for Python bytes-like behavior

    • bitfields: bitlist, bitvector

    • list, container, vector

    • union

    • basic types

  • Functionality:
    • Serialize all types. Into output stream (returning the written count) and as bytes

    • Deserialize all types. From input stream (and scope) and from bytes

    • Hash-tree-root all types

    • Merkle-based data-sharing:
      • every view can be initialized/backed by a binary Merkle tree

      • complex views have backings, and can share data.

      • complex views provide a nice mutable interface, and replace their backing. And this also works for child-views through view-hooks.

      • SSZ-Partials: if a partial proof is loaded as backing, a view can be overlaid, and the partial backing works as long as no excluded branches are accessed.

    • Calculate byte lengths:
      • Type min/max byte length

      • Byte length for fixed-length types

      • Output byte length for a value, without serializing

    • Navigation: construct paths from types, and convert to generalized indices.

    • History: traverse a sequence of nodes, and get the changelog for a given subtree location.

Also see

Contact

Author: @protolambda

License

MIT, see LICENSE file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eth_remerkleable-0.1.30.tar.gz (49.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eth_remerkleable-0.1.30-py3-none-any.whl (57.0 kB view details)

Uploaded Python 3

File details

Details for the file eth_remerkleable-0.1.30.tar.gz.

File metadata

  • Download URL: eth_remerkleable-0.1.30.tar.gz
  • Upload date:
  • Size: 49.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for eth_remerkleable-0.1.30.tar.gz
Algorithm Hash digest
SHA256 0dba8661d42014ca19e3acac9932877ea5981d33326bf1a0e1719f680c47efb6
MD5 5120a44c005f1e6e8fd89eda8d8fbe1c
BLAKE2b-256 93c45e9ec5e8f76c0b03ad4127c5b35df50cda65a65bf1a552f081b364909104

See more details on using hashes here.

Provenance

The following attestation bundles were made for eth_remerkleable-0.1.30.tar.gz:

Publisher: publish.yaml on ethereum/remerkleable

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file eth_remerkleable-0.1.30-py3-none-any.whl.

File metadata

File hashes

Hashes for eth_remerkleable-0.1.30-py3-none-any.whl
Algorithm Hash digest
SHA256 eaa2acbc43158f8259e0f72eeab14c158669758522b4620d19bae59800c2ae3a
MD5 25b7ea10645ddeff693721abe8e1abe3
BLAKE2b-256 b98270c148dff9739b49ebb7607506b2b7d5d3f721c5ba372979a333ed692f0b

See more details on using hashes here.

Provenance

The following attestation bundles were made for eth_remerkleable-0.1.30-py3-none-any.whl:

Publisher: publish.yaml on ethereum/remerkleable

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page