Ashlesh Gawande | 465d149 | 2019-01-10 15:12:01 -0600 | [diff] [blame] | 1 | PSync version 0.1.0 |
| 2 | ------------------- |
| 3 | |
| 4 | Release date: January 25, 2019 |
| 5 | |
| 6 | Version 0.1.0 is the initial release of PSyncPSync library implements the `PSync protocol <https://named-data.net/wp-content/uploads/2017/05/scalable_name-based_data_synchronization.pdf>`_. It uses Invertible |
| 7 | Bloom Lookup Table (IBLT), also known as Invertible Bloom Filter (IBF), to represent the state |
| 8 | of a producer in partial sync mode and the state of a node in full sync mode. An IBF is a compact data |
| 9 | structure where difference of two IBFs can be computed efficiently. |
| 10 | In partial sync, PSync uses a Bloom Filter to represent the subscription of list of the consumer. |
| 11 | PSync uses `ndn-cxx <https://github.com/named-data/ndn-cxx>`_ library as NDN development |
| 12 | library. |
| 13 | |
| 14 | PSync is an open source project licensed under LGPL 3.0. We highly welcome all contributions to the PSync code base, provided that they can be licensed under LGPL 3.0+ or other compatible license. |
| 15 | |
| 16 | PSync supports the following features: |
| 17 | |
| 18 | - **Partial Synchronization** |
| 19 | |
| 20 | + Allows consumers to subscribe to a subset of a producer's offered prefixes. |
| 21 | + Consumer can sync with any replicated producer in the same sync group. |
| 22 | + A PartialProducer class to publish prefixes and updates. |
| 23 | + A Consumer class to subscribe to the producer (hello) and listen for updates (sync). |
| 24 | |
| 25 | - **Full Synchronization** |
| 26 | |
| 27 | + Similar to ChronoSync, allows full synchronization of names amongst all the nodes in the sync group. |
| 28 | + FullProducer class can be used start syncing with a sync group. |
| 29 | |
| 30 | - **Miscellaneous** |
| 31 | |
| 32 | + Uses ndn-cxx **SegmentFetcher** to segment hello and sync data. |
| 33 | + Provide a SegmentPublisher that can be used by other NDN applications. |
| 34 | + Examples are provided in `examples` folder to show how to use the library. |