ChronoChat - A Serverless Chat Application in NDN
=================================================

..
   NFD is a network forwarder that implements and evolves together with the Named Data
   Networking (NDN) `protocol <http://named-data.net/doc/ndn-tlv/>`__. After the initial
   release, NFD will become a core component of the `NDN Platform
   <http://named-data.net/codebase/platform/>`__ and will follow the same release cycle.

ChronoChat Documentation
------------------------

.. toctree::
   :hidden:
   :maxdepth: 3

   DesignDoc
   FAQ

..
   INSTALL

* :doc:`DesignDoc`

* :doc:`FAQ`

**Additional documentation**

* `API documentation (doxygen) <doxygen/annotated.html>`_

Downloading
-----------

* `Source code GitHub git repository <https://github.com/named-data/ChronoSync>`_.

License
-------

..
   NFD is an open and free software package licensed under GPL 3.0 license and is the
   centerpiece of our committement to making NDN's core technology open and free to all
   Internet users and developers. For more information about the licensing details and
   limitation, refer to `COPYING.md <https://github.com/named-data/NFD/blob/master/COPYING.md>`_.
