blob: a8e8790a327199e197171d45613dceff23f27f0c [file] [log] [blame] [view]
Ashlesh Gawande0b2897e2018-06-20 14:40:47 -05001PSYNC - Partial and Full Synchronization Library for NDN
2========================================================
3
4If you are new to the NDN community of software generally, read the
5[Contributor's Guide](https://github.com/named-data/NFD/blob/master/CONTRIBUTING.md).
6
7PSync library implements the [PSync protocol](https://named-data.net/wp-content/uploads/2017/05/scalable_name-based_data_synchronization.pdf). It uses Invertible
8Bloom Lookup Table (IBLT), also known as Invertible Bloom Filter (IBF), to represent the state
9of a producer in partial sync mode and the state of a node in full sync mode. An IBF is a compact data
10structure where difference of two IBFs can be computed efficiently.
11In partial sync, PSync uses a Bloom Filter to represent the subscription of list of the consumer.
12PSync uses [ndn-cxx](https://github.com/named-data/ndn-cxx) library as NDN development
13library.
14
15PSync is an open source project licensed under GPL 3.0 (see `COPYING.md` for more
16detail). We highly welcome all contributions to the PSync code base, provided that
17they can licensed under GPL 3.0+ or other compatible license.
18
19Feedback
20--------
21
22Please submit any bugs or issues to the **PSync** issue tracker:
23
24* https://redmine.named-data.net/projects/psync
25
26Installation instructions
27-------------------------
28
29### Prerequisites
30
31Required:
32
33* [ndn-cxx and its dependencies](https://named-data.net/doc/ndn-cxx/)
34
35### Build
36
37To build PSync from the source:
38
39 ./waf configure
40 ./waf
41 sudo ./waf install
42
43To build on memory constrained platform, please use `./waf -j1` instead of `./waf`. The
44command will disable parallel compilation.
45
46If configured with tests: `./waf configure --with-tests`), the above commands will also
47generate unit tests in `./build/unit-tests`