Skip to content

Implementations of the Willow family of specifications in Rust.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

earthstar-project/willow-rs

Repository files navigation

willow-rs

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:

We welcome contributions! If you're looking for contribution ideas, please see the repo's issues, milestones, and projects.

See also

  • Willow website
  • willow-js - TypeScript implementation of Willow Data Model, Sideloading, and General Purpose Sync protocol.
  • meadowcap-js - TypeScript implementation of Meadowcap

Fuzz tests

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.