1 unstable release

0.1.0 Dec 6, 2024

#1572 in Network programming

Download history 537/week @ 2024-12-06 196/week @ 2024-12-13 49/week @ 2024-12-20 25/week @ 2024-12-27 17/week @ 2025-01-03 36/week @ 2025-01-10

135 downloads per month
Used in 2 crates

MIT/Apache

98KB
1.5K SLoC

p2panda-sync

Data- and transport-agnostic sync protocols

This crate provides a data- and transport-agnostic interface to implement custom sync protocols, compatible with p2panda-net or other peer-to-peer networking solutions.

In addition to the generic definition of the SyncProtocol trait, p2panda-sync includes optional implementations for efficient sync of append-only log-based data types. These optional implementations may be activated via feature flags. Finally, p2panda-sync provides helpers to encode wire messages in CBOR.

Features

  • Transport- and data-type agnostic trait definitions compatible with p2panda-net
  • Efficient and ready-to-use implementation for log-height based sync of p2panda core data-types
  • Privacy-first design allowing implementations to reveal as little information as possible during handshake phase
  • Generic design to re-use the same sync protocol for very different applications

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in p2panda by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


This project has received funding from the European Union’s Horizon 2020 research and innovation programme within the framework of the NGI-POINTER Project funded under grant agreement No 871528, NGI-ASSURE No 957073 and NGI0-ENTRUST No 101069594.

Dependencies

~1–9MB
~82K SLoC