DatPy implementation map
This is a work-in-progress open draft for the map of what needs to be implemented to achieve a working Python based Hypercore. 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 and sub-dependency tree of Hypercore.
- [ ] hypercore
- [ ] array-lru
- [ ] bitfield-rle
- [ ] fast-bitfield
- [ ] memory-pager
- [x] merkle-tree-stream (see datpy/merkle-tree-stream)
- [ ] random-access-file
- [ ] sparse-bitfield
- [ ] hypercore-crypto (see datpy/hypercore-protocol)
- [ ] hypercore-protocol
- [ ] varint
- [ ] discovery-swarm
- [ ] mdns
Thanks to the C++ Dat dependency tree for help in visualing and estimating this list.
Please note that I aim to initially only provide a local-first multicast-dns implementation for discovering peers. This will allow local-first experiments to move forward. DNS and DHT based discovery can come afterwards.