Protocols for synchronisable data stores. The best parts? Fine-grained permissions, a keen approach to privacy, destructive edits, and a dainty bandwidth and memory footprint.
Currently, this repo provides Rust implementations of:
- Meadowcap, a capability system adaptable to local needs,
- Everything in the Willow Data Model (parameters, paths, entries, groupings, encodings) except for the all-important store.
Eventually, this repo will house Rust implementations of:
- The aforementioned all-important store,
- Willow Sideloading protocol, eventually consistent data delivered by any means possible,
- and Willow General Purpose Sync Protocol, private and efficient synchronisation of Willow stores.
We welcome contributions! If you're looking for contribution ideas, please see the repo's issues, milestones, and projects.
- Willow website
- willow-js - TypeScript implementation of Willow Data Model, Sideloading, and General Purpose Sync protocol.
- meadowcap-js - TypeScript implementation of Meadowcap
This repository has many fuzz tests. To use cargo fuzz
commands, you must first make fuzz
the working directory so that the nightly compiler (on which cargo-fuzz relies) is used for compiling the tests.
cd fuzz
cargo fuzz run <test_name_here>
There is also a command for running all the fuzz tests sequentially:
cd fuzz
./run_all.sh -- -max_total_time=<number_of_seconds>
This project was funded through the NGI0 Core Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101092990.