Source code

The main NEAT code repository is publicly available on github:

Please note:

  • This is work-in-progress and in early stages of development. However, we believe in open code, hence why we have made it public.
  • The API is still subject to change.

i.e., you should not use this code in its current state to build a product on.

Feedback – suggestions, comments, bug reports or patches – is more than welcome on github!

You can also send us your feedback via this page.

Tutorial and online documentation

A tutorial of how to program with the NEAT User API is available online.

Online documentation (API reference, optional arguments, error codes, properties) is available at:

VMs pre-packaged with NEAT

The NEAT library, including installation instructions, sample test applications and documentation, is now provided within ready-to-deploy virtual machine (VM) environments. These NEAT VMs support both VMware and VirtualBox hypervisors. Each VM contains a pre-configured version of the NEAT library, built from a recent snapshot of the NEAT Github repository.

Each VM contains a recent binary version of the NEAT library that has successfully passed the automated Buildbot tests. The Policy Manager is configured to run as a daemon, using a minimal set of pre-configured policies and CIB entries. In addition, the VMs contain the NEAT sources in the ~/neat directory which is linked to the NEAT Github repository enabling users to pull updated development code or push contributions. The images also include all package dependencies required to build and debug NEAT, as well as compiler suites and example NEAT code.

Please follow this link to get to the downloads page.

You can provide us feedback on the NEAT VMs by clicking here.


The following software tools have been either developed by NEAT, or are used by the project for tests and experiments. They are used for either measurements or traffic generation. Some are independent from the NEAT library, whereas others are built on top of the library.


  • Fling
    • Link:
    • Description: When developing protocol extensions, it is often important to know what will happen to particular types of packets along a path (e.g. “If we add an option to this packet, is it more likely to be dropped? Will the option often be removed?”). fling allows for experimentation of various protocols of interest. fling transmits packets from a pcap file, following a dialogue defined in a JSON file, between fling clients and servers.
  • Edgetrace
    • Link:
    • Description: edgetrace is a probing and measurement tool for evaluating DSCP mark survivability in the Internet from a geographically diverse set of measurement locations. edgetrace is a small simple client and server with a host capturing packet data for evaluation. The edgetrace survey concluded at the end of June 2017.
  • PATHspider
    • Link:
    • Description: PATHspider is a framework for performing and analyzing easily customized A/B tests. PATHspider makes it easy to run large scale measurements on the Internet, with plugins available to support a large range of protocols. PATHspider has been developed by the MAMI EU project.

(Tools list TBC)

Zenodo collection

NEAT outputs (papers, data, etc.) are collected and curated in a Zenodo community collection:

Please watch this space for future resources (like source code) coming out of the NEAT project.