You are here

Developer Handbook

Primary tabs

This book is intended to be an introduction for programmers that want to extend the GNUnet framework. GNUnet is more than a simple peer-to-peer application. For developers, GNUnet is:

  • Free software under the GNU General Public License, with a community that believes in the GNU philosophy
  • A set of standards, including coding conventions and architectural rules
  • A set of layered protocols, both specifying the communication between peers as well as the communication between components of a single peer.
  • A set of libraries with well-defined APIs suitable for writing extensions

In particular, the architecture specifies that a peer consists of many processes communicating via protocols. Processes can be written in almost any language. C and Java APIs exist for accessing existing services and for writing extensions. It is possible to write extensions in other languages by implementing the necessary IPC protocols.

GNUnet can be extended and improved along many possible dimensions, and anyone interested in free software and freedom-enhancing networking is welcome to join the effort. This developer handbook attempts to provide an initial introduction to some of the key design choices and central components of the system. This manual is far from complete, and we welcome informed contributions, be it in the form of new chapters or insightful comments.

However, the website is experiencing a constant onslaught of sophisticated link-spam entered manually by exploited workers solving puzzles and customizing text. To limit this commercial defacement, we are strictly moderating comments and have disallowed "normal" users from posting new content. However, this is really only intended to keep the spam at bay. If you are a real user or aspiring developer, please drop us a note (IRC, e-mail, contact form) with your user profile ID number included. We will then relax these restrictions on your account. We're sorry for this inconvenience; however, few people would want to read this site if 99% of it was advertisements for bogus websites.