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