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