Datpy implementation map
This is an open draft for the map of what needs to be implemented to achieve a working Python based Hypercore (version 7 of the protocol). This page may change as my understanding changes.
From my investigation, the following libraries will need to be implemented. This list is taken from the dependency tree of Hypercore. Thanks to the C++ Dat dependency tree for help in visualing and estimating this list.
- [ ] hypercore
- [ ] array-lru
- [ ] bitfield-rle
- [ ] fast-bitfield
- [ ] memory-pager
- [x] merkle-tree-stream (see datpy/merkle-tree-stream)
- [ ] random-access-file
- [ ] sparse-bitfield
- [x] hypercore-crypto (see datpy/hypercore-crypto)
- [ ] hypercore-protocol (WIP see datpy/hypercore-protocol)
- [ ] discovery-swarm
Please note that I aim to initially only provide a local-first multicast-dns implementation for discovering peers in
discovery-channel. This will allow local-first experiments to move forward.