Download and run Netsukuku
Netsukuku is a relatively ancient study on a P2P layer 3 protocol and as such has been already implemented more than once. It is all licensed GNU GPL v2. The main implementations today are three: in C, in Python and in Vala.
Vala port 1.0
The Netsukuku implementation in Vala is the most recent and is being actively developed by Luca Dionisi, who is also updating a blog about it.
Some notes so that you know what you can and cannot
expect from this release: https://lab.dyne.org/Netsukuku_Dev/1_0/README
Tarballs at: http://download.savannah.gnu.org/releases/netsukuku
Instructions for ubuntu and openwrt have their pages:
https://lab.dyne.org/Netsukuku_Dev/1_0/openwrt (cross-compile for OpenWRT)
The Vala version also runs on OpenWRT routers. This is impressive of Vala. This codebase is worth looking into.
C is the first language used to develop Netsukuku: the code was written by Alpt, a young mathematician inspired and helped by the Freaknet brotherhood. As of today, Alpt is not maintaining Netsukuku anymore, but his research on scalable mesh networks continues, also with academic publications.
Meanwhile, from the first C codebase being written, a community grew lead by Miss Valeska to maintain and update this implementation, which is now hosted on Github.
Python was the language of choice for the second rewrite of Netsukuku, born out of the first simulator used by Alpt to profile QSPN (q2sim.py), was never really finished for production use, but constitutes a readable sourcecode that is much clearer than the first C implementation.
A trace of this rewrite is still present on Github