Implementations of the Willow family of specifications in Rust.
Find a file
2026-03-05 23:55:30 +01:00
.github/workflows Allow warnings in CI 2025-09-24 10:46:33 +02:00
fuzz Duplicate relative encoding logic for AuthorisationToken’25 2026-02-22 16:11:43 +01:00
meadowcap Fix unconditional Arbitrary impl 2026-03-03 10:32:52 +01:00
willow25 Update willow25 changelog 2026-03-05 23:55:30 +01:00
willow25_macros Replace hard-coded parameters with ’25 consts 2026-02-16 12:38:42 +01:00
willow_data_model MemoryStore::flush, Store trait doc comment fixes 2026-02-25 09:28:07 +01:00
.gitignore Add successor + prefix successor fns for paths + fuzz testing 2024-07-01 12:14:32 +01:00
Cargo.lock Add Willow'25 Store trait + MemoryStore 2026-02-24 13:59:30 +01:00
Cargo.toml Port read capabilities to willow25 2025-12-04 22:36:37 +01:00
LICENSE-APACHE Update metadata 2025-10-26 14:58:00 +01:00
LICENSE-MIT Update metadata 2025-10-26 14:58:00 +01:00
README.md Update usage instructions for fuzz/run_all.sh 2025-11-13 16:25:43 +01:00
rust-toolchain.toml chore: add CI for windows, android, and 32bit cross compile 2024-08-13 10:52:30 +02:00

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.

A Rust implementation of various parts of the Willow specifications. The readmes for the individual crates in this workspace contain more information.

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 <time per test case in seconds> [infinite]

Specify the infinite flag if you want to keep looping through all test cases. Without it, every test case is run once and then the script terminates.


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.