blob: c6eff54f49f9f2c38014964284d35c0f2eae59f8 [file] [log] [blame] [view]
Alexander Afanasyeva1417002014-01-21 20:29:55 -08001NFD - Named Data Networking Forwarding Daemon
Beichuan Zhang55b8ed42014-04-26 22:25:44 -07002=============================================
Alexander Afanasyeva1417002014-01-21 20:29:55 -08003
Davide Pesaventocffb4e52016-09-12 20:03:08 +02004[![Build Status](https://travis-ci.org/named-data/NFD.svg?branch=master)](https://travis-ci.org/named-data/NFD)
5
Steve DiBenedetto62a93942014-08-24 17:13:52 -06006For complete documentation, including step-by-step installation instructions and
Eric Newberry81a9a862016-12-27 22:59:27 -07007tutorials, please visit the [NFD homepage](https://named-data.net/doc/NFD/).
Alexander Afanasyev0c3e93d2014-05-12 15:49:56 -07008
Nick Gordon3257af22017-12-21 14:15:55 -06009If you are new to the NDN software community, please read README-dev.md and the
10[Contributor's Guide](https://github.com/named-data/NFD/blob/master/CONTRIBUTING.md).
11
Alexander Afanasyev0c3e93d2014-05-12 15:49:56 -070012## Overview
13
Beichuan Zhang55b8ed42014-04-26 22:25:44 -070014NFD is a network forwarder that implements and evolves together with the Named Data
Eric Newberry81a9a862016-12-27 22:59:27 -070015Networking (NDN) [protocol](https://named-data.net/doc/ndn-tlv/). After the initial
Beichuan Zhang55b8ed42014-04-26 22:25:44 -070016release, NFD will become a core component of the
Eric Newberry81a9a862016-12-27 22:59:27 -070017[NDN Platform](https://named-data.net/codebase/platform/) and will follow the same release
Beichuan Zhang55b8ed42014-04-26 22:25:44 -070018cycle.
Alexander Afanasyeva1417002014-01-21 20:29:55 -080019
Beichuan Zhang55b8ed42014-04-26 22:25:44 -070020NFD is an open and free software package licensed under GPL 3.0 license and is the
21centerpiece of our committement to making NDN's core technology open and free to all
22Internet users and developers. For more information about the licensing details and
23limitation, refer to
24[`COPYING.md`](https://github.com/named-data/NFD/blob/master/COPYING.md).
Steve DiBenedetto1a3c6732014-03-13 06:44:05 -060025
Beichuan Zhang55b8ed42014-04-26 22:25:44 -070026NFD is developed by a community effort. Although the first release was mostly done by the
Eric Newberry81a9a862016-12-27 22:59:27 -070027members of [NSF-sponsored NDN project team](https://named-data.net/project/participants/),
Beichuan Zhang55b8ed42014-04-26 22:25:44 -070028it already contains significant contributions from people outside the project team (for
Steve DiBenedetto62a93942014-08-24 17:13:52 -060029more details, refer to
30[`AUTHORS.md`](https://github.com/named-data/NFD/blob/master/AUTHORS.md)). We strongly
31encourage participation from all interested parties, since broader community support is
32key for NDN to succeed as a new Internet architecture. Bug reports and feedback are
33highly appreciated and can be made through
Eric Newberry81a9a862016-12-27 22:59:27 -070034[Redmine site](https://redmine.named-data.net/projects/nfd) and the
Alexander Afanasyev284257b2014-04-11 14:16:51 -070035[ndn-interest mailing list](http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest).
Steve DiBenedetto1a3c6732014-03-13 06:44:05 -060036
Beichuan Zhang55b8ed42014-04-26 22:25:44 -070037The main design goal of NFD is to support diverse experimentation of NDN technology. The
38design emphasizes *modularity* and *extensibility* to allow easy experiments with new
39protocol features, algorithms, new applications. We have not fully optimized the code for
40performance. The intention is that performance optimizations are one type of experiments
41that developers can conduct by trying out different data structures and different
42algorithms; over time, better implementations may emerge within the same design framework.
43
44NFD will keep evolving in three aspects: improvement of the modularity framework, keeping
45up with the NDN protocol spec, and addition of other new features. We hope to keep the
Steve DiBenedetto62a93942014-08-24 17:13:52 -060046modular framework stable and lean, allowing researchers to implement and experiment with
47various features, some of which may eventually work into the protocol spec.