index.rst (1905B)
1 2 .. _GNUnet-Developer-Handbook: 3 4 ######################### 5 Developer Handbook 6 ######################### 7 8 This book is intended to be an introduction for programmers that want to 9 extend the GNUnet framework. GNUnet is more than a simple peer-to-peer 10 application. 11 12 For developers, GNUnet is: 13 14 * developed by a community that believes in the GNU philosophy 15 * Free Software (Free as in Freedom), licensed under the 16 `GNU Affero General Public License`_ 17 * A set of standards, including coding conventions and architectural rules 18 * A set of layered protocols, both specifying the communication 19 between peers as well as the communication between components 20 of a single peer 21 * A set of libraries with well-defined APIs suitable for 22 writing extensions 23 24 In particular, the architecture specifies that a peer consists of many 25 processes communicating via protocols. Processes can be written in almost 26 any language. 27 ``C``, ``Java`` and ``Guile`` APIs exist for accessing existing 28 services and for writing extensions. 29 It is possible to write extensions in other languages by 30 implementing the necessary IPC protocols. 31 32 GNUnet can be extended and improved along many possible dimensions, and 33 anyone interested in Free Software and Freedom-enhancing Networking is 34 welcome to join the effort. This Developer Handbook attempts to provide 35 an initial introduction to some of the key design choices and central 36 components of the system. 37 38 This part of the GNUnet documentation is far from complete, 39 and we welcome informed contributions, be it in the form of 40 new chapters, sections or insightful comments. 41 42 .. toctree:: 43 :maxdepth: 2 44 45 contributing.rst 46 style.rst 47 48 util.rst 49 architecture.rst 50 cryptographic-material.rst 51 stability.rst 52 apis/index.rst 53 rest-api/index.rst 54 tutorial 55 livingstandards 56 doxygen 57 58 .. _GNU Affero General Public License: https://www.gnu.org/licenses/licenses.html#AGPL