build: require gcc >= 9.1, recommend gcc >= 10.2

Similarly, recommend clang 10 or later. On macOS, the minimum Xcode
version is now 11, the recommended one is still 13 or later.

Change-Id: I0b9d64938856041009bab3b4da3057ef299cadba
2 files changed
tree: 26d548788c7ddbf2ca9896fe7d72acad8811b454
  1. .github/
  2. .jenkins.d/
  3. .waf-tools/
  4. docs/
  5. src/
  6. tests/
  7. .editorconfig
  8. .gitignore
  9. .jenkins
  10. .mailmap
  11. AUTHORS.md
  12. ChronoSync.pc.in
  13. COPYING.md
  14. README.md
  15. RELEASE_NOTES.md
  16. waf
  17. wscript
README.md

ChronoSync: synchronization library for distributed realtime applications for NDN

Latest version Language CI Docs

[!NOTE] DEPRECATION NOTICE: ChronoSync's design is outdated. We recommend using more recent sync protocols, such as PSync or StateVectorSync.

In supporting many distributed applications, such as group text messaging, file sharing, and joint editing, a basic requirement is the efficient and robust synchronization of knowledge about the dataset such as text messages, changes to the shared folder, or document edits. This library implements the ChronoSync protocol, which exploits the features of the Named Data Networking architecture to efficiently synchronize the state of a dataset among a distributed group of users. Using appropriate naming rules, ChronoSync summarizes the state of a dataset in a condensed cryptographic digest form and exchange it among the distributed parties. Differences of the dataset can be inferred from the digests and disseminated efficiently to all parties. With the complete and up-to-date knowledge of the dataset changes, applications can decide whether or when to fetch which pieces of the data.

ChronoSync uses the ndn-cxx library.

Installation

Prerequisites

Build

To build ChronoSync from source:

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

To build on memory constrained systems, please use ./waf -j1 instead of ./waf. This will disable parallel compilation.

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

Reporting bugs

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

Contributing

Contributions to ChronoSync are greatly appreciated and can be made through our Gerrit code review site. If you are new to the NDN software community, please read our Contributor's Guide to get started.

License

ChronoSync is free software distributed under the GNU General Public License version 3. See COPYING.md for details.