blob: 8e14ea6cd4a2fbedaf99fdd41a7a7c7605abd195 [file] [log] [blame]
Davide Pesavento36651f12023-01-02 17:07:21 -05001PSync: Partial/Full Sync Library based on BF and IBF
2====================================================
3
4.. toctree::
5 :hidden:
6 :maxdepth: 2
7
8 install
9 examples
10 release-notes
11 releases
Ashlesh Gawande465d1492019-01-10 15:12:01 -060012
Davide Pesavento51189592021-10-02 22:34:34 -040013PSync is a C++ library for name synchronization that implements the `PSync protocol
14<https://named-data.net/wp-content/uploads/2017/05/scalable_name-based_data_synchronization.pdf>`__.
15It uses Invertible Bloom Lookup Table (IBLT), also known as Invertible Bloom Filter (IBF),
16to represent the state of a producer in partial sync mode and the state of a node in full
17sync mode. An IBF is a compact data structure where difference of two IBFs can be computed
18efficiently. In partial sync, PSync uses a Bloom Filter to represent the subscription of
19list of the consumer.
Ashlesh Gawande465d1492019-01-10 15:12:01 -060020
Davide Pesavento51189592021-10-02 22:34:34 -040021PSync uses the `ndn-cxx <https://github.com/named-data/ndn-cxx>`__ library.
Ashlesh Gawande465d1492019-01-10 15:12:01 -060022
Davide Pesavento36651f12023-01-02 17:07:21 -050023Documentation
24-------------
25
26- :doc:`install`
27- :doc:`examples`
28- :doc:`release-notes`
29- :doc:`releases`
30
Davide Pesavento46bac782023-02-19 20:32:24 -050031Issues
32------
33
34Please submit any bug reports or feature requests to the
35`PSync issue tracker <https://redmine.named-data.net/projects/psync/issues>`__.
36
Davide Pesavento51189592021-10-02 22:34:34 -040037Contributing
38------------
Ashlesh Gawande465d1492019-01-10 15:12:01 -060039
Davide Pesavento46bac782023-02-19 20:32:24 -050040Contributions to PSync are greatly appreciated and can be made through our
41`Gerrit code review site <https://gerrit.named-data.net/>`__.
Davide Pesavento36651f12023-01-02 17:07:21 -050042If you are new to the NDN software community, please read our `Contributor's Guide
Davide Pesavento46bac782023-02-19 20:32:24 -050043<https://github.com/named-data/.github/blob/main/CONTRIBUTING.md>`__ to get started.
Davide Pesavento51189592021-10-02 22:34:34 -040044
Davide Pesavento46bac782023-02-19 20:32:24 -050045License
46-------
47
48PSync is free software: you can redistribute it and/or modify it under the terms of
49the GNU Lesser General Public License as published by the Free Software Foundation,
50either version 3 of the License, or (at your option) any later version. See `COPYING.md
51<https://github.com/named-data/PSync/blob/master/COPYING.md>`__ for details.