Milestones & Tasks
M1. Repository structure
Project structure & builds
- define crates & modules
- nix builds
- CI
Repo objects [A]
- Rust-BARE data structure mapping via Serde [A]
- create repo
- create branch
- create commit
Storage [B]
- LMDB store [B]
- enable encryption [C]
- get/put objects by ID
Merkle tree [C]
- get/put objects from/to store [C]
- verify whole tree (blake3) [C]
- follow child refs in local storce, check object hashes
- create merkle tree for a File/Commit [D]
- chunking
- encryption (chacha20)
M2. Sync & Broker protocol
Branch DAG [A]
- check if all deps are available
- follow object deps in local store
- sync requests
- DAG sync between heads with Bloom filters
Broker protocol [A]
- client auth [B]
- add/del users & devices [C]
- storage [B]
- accounts
- overlays & topics
- Object ops [A]
- get, put, pin, unpin, copy, del
- Branch ops [A]
- heads, sync
- Pub/sub [C]
- sub, unsub, events
PubSub [C]
- single-node pub/sub without overlay network
- keep track of branch heads