blob: 2cb99c5b19051566bb1e03d5bb908955025d10fc [file] [log] [blame] [view]
Alexander Afanasyev7c97cfa2014-07-02 12:10:13 -07001ChronoSync: synchronization library for distributed realtime applications for NDN
2=================================================================================
3
4In supporting many distributed applications, such as group text messaging, file sharing,
5and joint editing, a basic requirement is the efficient and robust synchronization of
6knowledge about the dataset such as text messages, changes to the shared folder, or
7document edits. This library implements
8[ChronoSync protocol](http://named-data.net/wp-content/uploads/2014/03/chronosync-icnp2013.pdf),
9which exploits the features of the Named Data Networking architecture to efficiently
10synchronize the state of a dataset among a distributed group of users. Using appropriate
11naming rules, ChronoSync summarizes the state of a dataset in a condensed cryptographic
12digest form and exchange it among the distributed parties. Differences of the dataset can
13be inferred from the digests and disseminated efficiently to all parties. With the
14complete and up-to-date knowledge of the dataset changes, applications can decide whether
15or when to fetch which pieces of the data.
16
17ChronoSync uses [ndn-cxx](https://github.com/named-data/ndn-cxx) library as NDN
18 development library.
19
20ChronoSync is an open source project licensed under GPL 3.0 (see `COPYING.md` for more
21detail). We highly welcome all contributions to the ChronoSync code base, provided that
22they can licensed under GPL 3.0+ or other compatible license.
23
24Feedback
25--------
26
27Please submit any bugs or issues to the **ChronoSync** issue tracker:
28
29* http://redmine.named-data.net/projects/chronosync
30
31Installation instructions
32-------------------------
33
34### Prerequisites
35
36Required:
37
38* [ndn-cxx and its dependencies](http://named-data.net/doc/ndn-cxx/)
39* Boost libraries
Alexander Afanasyev7c97cfa2014-07-02 12:10:13 -070040
41### Build
42
43To build ChronoSync from the source:
44
45 ./waf configure
46 ./waf
47 sudo ./waf install
48
49If configured with tests: `./waf configure --with-tests`), the above commands will also
50generate unit tests in `./build/unit-tests`