https://github.com/hyperpy/flat-tree
Utilities for navigating flat trees
https://github.com/hyperpy/flat-tree
hypercore hypercore-protocol
Last synced: 14 days ago
JSON representation
Utilities for navigating flat trees
- Host: GitHub
- URL: https://github.com/hyperpy/flat-tree
- Owner: hyperpy
- License: gpl-3.0
- Created: 2020-07-07T10:47:51.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-08-05T06:19:56.000Z (over 5 years ago)
- Last Synced: 2025-08-23T04:44:26.909Z (8 months ago)
- Topics: hypercore, hypercore-protocol
- Language: Python
- Homepage:
- Size: 93.8 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# flat-tree
[](https://drone.autonomic.zone/hyperpy/flat-tree)
## Utilities for navigating flat trees
> Flat Trees are the core data structure that power Hypercore feeds. They allow
> us to deterministically represent a tree structure as a vector. This is
> particularly useful because vectors map elegantly to disk and memory. Because
> Flat Trees are deterministic and pre-computed, there is no overhead to using
> them. In effect this means that Flat Trees are a specific way of indexing
> into a vector more than they are their own data structure. This makes them
> uniquely efficient and convenient to implement in a wide range of languages.
## Install
```sh
$ pip install flat-tree
```
## Example
```python
from flat_tree import FlatTreeIterator
tree_iter = FlatTreeIterator()
print("tree index: ", tree_iter.index)
print("tree first parent: ", tree_iter.parent())
print("tree next parent", tree_iter.parent())
```
Output:
```sh
tree index: 0
tree first parent: 1
tree next parent 3
```