{"id":15657444,"url":"https://github.com/protolambda/remerkleable","last_synced_at":"2025-09-24T01:31:25.004Z","repository":{"id":41478854,"uuid":"225229987","full_name":"protolambda/remerkleable","owner":"protolambda","description":"Typed mutable SSZ views over cached and immutable binary merkle trees","archived":false,"fork":false,"pushed_at":"2024-07-17T12:35:14.000Z","size":505,"stargazers_count":23,"open_issues_count":7,"forks_count":9,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-08T02:09:40.779Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/protolambda.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-01T20:58:39.000Z","updated_at":"2024-08-31T03:05:40.000Z","dependencies_parsed_at":"2024-06-16T03:29:07.944Z","dependency_job_id":"31b903f5-5777-4123-b8c8-8ca10cc32e9a","html_url":"https://github.com/protolambda/remerkleable","commit_stats":{"total_commits":156,"total_committers":5,"mean_commits":31.2,"dds":0.03205128205128205,"last_synced_commit":"91ed092d08ef0ba5ab076f0a34b0b371623db728"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protolambda%2Fremerkleable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protolambda%2Fremerkleable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protolambda%2Fremerkleable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protolambda%2Fremerkleable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/protolambda","download_url":"https://codeload.github.com/protolambda/remerkleable/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234021215,"owners_count":18767212,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-03T13:07:06.631Z","updated_at":"2025-09-24T01:31:19.706Z","avatar_url":"https://github.com/protolambda.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":".. image:: https://raw.githubusercontent.com/protolambda/remerkleable/master/docs/_static/logo.png\n   :width: 100 px\n\n``remerkleable``\n-----------------\n\n.. image:: https://img.shields.io/pypi/l/remerkleable.svg\n    :target: https://pypi.python.org/pypi/remerkleable\n\n.. image:: https://img.shields.io/pypi/pyversions/remerkleable.svg\n    :target: https://pypi.python.org/pypi/remerkleable\n\n.. image::  https://img.shields.io/pypi/status/remerkleable.svg\n    :target: https://pypi.python.org/pypi/remerkleable\n\n.. image:: https://img.shields.io/pypi/implementation/remerkleable.svg\n    :target: https://pypi.python.org/pypi/remerkleable\n\n.. image:: https://github.com/protolambda/remerkleable/workflows/Remerkleable%20Python%20CI/badge.svg\n    :target: https://github.com/protolambda/remerkleable/actions\n\n\n**Re-merkle-able**: Typed mutable SSZ views over cached and immutable binary Merkle trees.\n\nFeatures\n---------\n\n- Types:\n    - custom byte-vector and byte-list view for Python bytes-like behavior\n    - bitfields: bitlist, bitvector\n    - list, container, vector\n    - union\n    - basic types\n- Functionality:\n    - **Serialize** all types. Into output stream (returning the written count) and as ``bytes``\n    - **Deserialize** all types. From input stream (and scope) and from ``bytes``\n    - **Hash-tree-root** all types\n    - Merkle-based **data-sharing**:\n        - every view can be initialized/backed by a binary Merkle tree\n        - complex views have backings, and can share data.\n        - complex views provide a nice mutable interface, and replace their backing.\n          And this also works for child-views through view-hooks.\n        - *SSZ-Partials*: if a *partial* proof is loaded as backing, a view can be overlaid,\n          and the partial backing works as long as no excluded branches are accessed.\n    - **Calculate byte lengths**:\n        - Type min/max byte length\n        - Byte length for fixed-length types\n        - Output byte length for a value, without serializing\n    - **Navigation**: construct paths from types, and convert to generalized indices.\n    - **History**: traverse a sequence of nodes, and get the changelog for a given subtree location.\n\nProject Links\n--------------\n\n- Docs: https://remerkleable.readthedocs.io/\n- Changelog: https://remerkleable.readthedocs.io/en/latest/changelog.html\n- PyPI: https://pypi.python.org/pypi/remerkleable\n- Issues: https://github.com/protolambda/remerkleable/issues\n\nAlso see\n---------\n\n- `SSZ: \"SimpleSerialize\", part of Ethereum Proof of Stake spec \u003chttps://github.com/ethereum/consensus-specs/blob/dev/ssz/simple-serialize.md\u003e`_\n- `SSZ draft spec \u003chttps://github.com/protolambda/eth2.0-ssz/\u003e`_\n- `Ethereum Merkle trees information aggregate \u003chttps://github.com/protolambda/eth-merkle-trees\u003e`_\n\nContact\n--------\n\nAuthor: `@protolambda \u003chttps://github.com/protolambda\u003e`_\n\nLicense\n--------\n\nMIT, see `LICENSE \u003c./LICENSE\u003e`_ file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprotolambda%2Fremerkleable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprotolambda%2Fremerkleable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprotolambda%2Fremerkleable/lists"}