News, improvements, and Necessary Changes
Here, we maintain a changelog of breaking changes, and one of general site updates. You can subscribe to either via RSS.
News and Updates
Here we’ll share bits of news relevant to the Willow protocol, as well as improvements to the site. For example, the completion of an implementation, or the addition of new explanatory text and drawings to the site. Updates will be occasional and meaningful.
- Rust implementation of Meadowcap released
Our own Rust implementation of Meadowcap now conforms to the specification as of August 10th, 2024. The source, can be found at the willow-rs repository, and complete documentation can be found at docs.rs.
- Willow General Purpose Sync specification status promoted to ‘Candidate’
With a working implementation of the Willow General Purpose Sync Protocol in willow-js — and several other implementations now in progress — we feel comfortable in promoting the specification's status to Candidate.
- Sideloading in willow-js
Last week we published the Willow Sideloading protocol, and this week we have a working implementation available via willow-js 0.5.0.
For more information on this implementation, please see the documentation for
createDrop
andingestDrop
. - Willow Sideloading Protocol
A few months ago we published the Willow General Purpose Sync protocol, a synchronisation specification for securely and efficiently synchronising data over a network connection. However, there are many contexts where establishing such a connection is difficult, undesirable, or outright impossible.
The Willow Sideloading protocol is a new protocol for securely delivering Willow data by whatever means possible. We build upon the tradition of sneakernets to introduce the concept of the sidenet, the sporadically online and ad-hoc infrastructure users already have.
This new protocol can be used in place of (or as a complement to) the WGPS, is relatively simple to implement, and has a mercifully short specification.
- willow-js released
willow-js, our own TypeScript implementation of the Willow Data Model and the Willow General Purpose Sync protocol now conforms to these specifications as of May 6th, 2024. This module can be used to create, query, and sync Entries and their corresponding Payloads in stores in the browser and Deno runtime.
The source, documentation, and usage instructions can be found at the willow-js repository.
- meadowcap-js 0.2.0 released
Our own TypeScript implementation of Meadowcap now conforms to the specification as of January 23rd, 2024. The source, documentation, and usage instructions can be found at the meadowcap-js repository.
- Welcome to willowprotocol.org!
The site for the Willow protocol has been officially released to the public.
Necessary Changes
Although we consider Willow’s specifications stable, unforeseen outcomes may force us to make amendments. Rather than making this a source of exciting surprises for implementors, we prefer to list those (hopefully few) changes here.
- Sync Protocol Tweaks
We are progressing with implementing the Willow General Purpose Sync Protocol (WGPS), and have discovered some tweaks that make the protocol more powerful.
First, we have generalised the parameters for fingerprint computation in range-based set reconciliation: the old type of
Fingerprints
is now calledPreFingerprint
. After computing aPreFingerprint
but before sending it to the other peer for comparison, it is transformed into an actualFingerprint
with an arbitrary function. This allows using large fingerprints with nice algebraic properties for the computations, but compressing them with a conventional hash function before transmission.The second generalisation concerns payload transmission. Instead of transmitting payloads verbatim, peers may now transform the payloads into arbitrary other bytestrings, and exchange those instead. This opens up features such as streaming verification of partial payloads, or on-the-fly compression.
- Willow specification published
No changes yet!