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.29.tar.gz (49.3 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.29-py3-none-any.whl (56.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for eth_remerkleable-0.1.29.tar.gz
Algorithm Hash digest
SHA256 2418b008cd7471d0f5ab37e5a9784ef4184e503192e6f38c223fe25b7cbbcac3
MD5 c7eaf3836789077f52f464f77b7a454e
BLAKE2b-256 3716b91f3fc0c46f8ff597f26fbbbc1d8fbe7ab8d5103e00546417455298b449

See more details on using hashes here.

Provenance

The following attestation bundles were made for eth_remerkleable-0.1.29.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.29-py3-none-any.whl.

File metadata

File hashes

Hashes for eth_remerkleable-0.1.29-py3-none-any.whl
Algorithm Hash digest
SHA256 0763da127f49795a3f98e424bfea008f26c75d8970a65ebef73d09c4b7ba4973
MD5 4548146adb7c85735a43ff38471fd8e3
BLAKE2b-256 59c0f9d34d93b36563482368a60b09b839fd879dcbb36882ed8bb597d4dd9768

See more details on using hashes here.

Provenance

The following attestation bundles were made for eth_remerkleable-0.1.29-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