build: align minimum build dependencies with ndn-cxx

 * Recommend gcc >= 7.4.0
 * Require clang >= 4.0, or Xcode >= 9.0 on macOS
 * Silence an ABI-related diagnostic message from gcc on armv7
 * Update Travis CI job matrix

Refs: #5087, #5106
Change-Id: I659aa617dad0ed7eb23967215c37586ef168d88c
12 files changed
tree: e4fbeac45656073bde32784b2771537102b6a89f
  1. .jenkins.d/
  2. .waf-tools/
  3. docs/
  4. examples/
  5. PSync/
  6. tests/
  7. .gitignore
  8. .jenkins
  9. .travis.yml
  10. AUTHORS.md
  11. COPYING.md
  12. PSync.pc.in
  13. README.md
  14. waf
  15. wscript
README.md

PSync: Partial and Full Synchronization Library for NDN

Language Build Status Latest Version

The PSync library implements the PSync protocol. It uses Invertible Bloom Lookup Table (IBLT), also known as Invertible Bloom Filter (IBF), to represent the state of a producer in partial sync mode and the state of a node in full sync mode. An IBF is a compact data structure where difference of two IBFs can be computed efficiently. In partial sync, PSync uses a Bloom Filter to represent the subscription list of the consumer.

PSync uses the ndn-cxx library.

Installation

Prerequisites

Build

To build PSync from source:

./waf configure
./waf
sudo ./waf install

To build on memory constrained platform, please use ./waf -j1 instead of ./waf. The command will disable parallel compilation.

If configured with tests (./waf configure --with-tests), the above commands will also generate unit tests that can be run with ./build/unit-tests.

Reporting bugs

Please submit any bug reports or feature requests to the PSync issue tracker.

Contributing

We greatly appreciate contributions to the PSync code base, provided that they are licensed under the LGPL 3.0+ or a compatible license (see below). If you are new to the NDN software community, please read the Contributor's Guide to get started.

License

PSync is an open source project licensed under the LGPL version 3. See COPYING.md for more information.