Implementations of the Willow family of specifications in Rust. https://willowprotocol.org/
  • Rust 99.8%
  • Just 0.2%
Find a file
2026-04-18 10:26:39 +02:00
.github/workflows Allow warnings in CI 2025-09-24 10:46:33 +02:00
fuzz Oops 2026-04-17 12:46:29 +02:00
meadowcap Bump meadowcap version 2026-04-17 16:32:21 +02:00
willow25 Derive Display and Error for PersistentStoreError 2026-04-18 10:26:39 +02:00
willow25_macros Replace hard-coded parameters with ’25 consts 2026-02-16 12:38:42 +01:00
willow_data_model Prepare willow_data_model for release 2026-04-17 16:27:47 +02:00
.gitignore Redo PersistentStore::new API, first fuzz tests running 2026-03-30 20:00:13 +02:00
Cargo.lock Bump meadowcap version 2026-04-17 16:32:21 +02:00
Cargo.toml Update bab_rs to 0.5.0 2026-04-17 15:00:00 +02:00
justfile Add justfile for automated checks, relax lints 2026-04-14 15:24:52 +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.