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.31.tar.gz (49.5 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.31-py3-none-any.whl (57.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: eth_remerkleable-0.1.31.tar.gz
  • Upload date:
  • Size: 49.5 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.31.tar.gz
Algorithm Hash digest
SHA256 94df4b18a50dfc46f55b2e790cfece384e64032e9cb82d185cff09224682ad1d
MD5 d095b5b8be96cba1c415a10a0f3493bc
BLAKE2b-256 51ac40fde655f67fd02f07b28e3fe4b9bb4af521388ca8aa48462d622ce4fa03

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for eth_remerkleable-0.1.31-py3-none-any.whl
Algorithm Hash digest
SHA256 7e48ea1b80935977effc02300f3f9b1db19153ab87ffbcea14a6e6429bbdc56b
MD5 3a03cc39cfed5deff430166bd20ffb8a
BLAKE2b-256 b6a187f7c996f344c5f213c2bca657e579c3696bb99737238c0cf9f04867386a

See more details on using hashes here.

Provenance

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