GNUnet System Architecture

Legend:

house
application
circle
application
box
daemon
diamond
library
blackline
dependency
blue line
extension via plugin
red line
possibly useful
dashed
in planning

Foundations

The foundations of GNUnet are a distributed hash table (R5N), an SCTP-like end-to-end encrypted messaging layer (CADET), a public key infrastructure (GNS) and a pluggable transport system (TRANSPORT).
Using public keys for addresses and self-organized decentralized routing algorithms, these subsystems replace the traditional TCP/IP stack.

Security

GNUnet is implemented using a multi-process architecture. Each subsystem runs as a separate process, providing fault-isolation and enabling tight permissions to be granted to each subsystem. Naturally, the implementation is a GNU package, and will always remain free software.

System architecture

Read more about the system architecure in the respective section of our handbook.

Subsystems

Read more about the subsystems (or GNUnet services) in the respective section of our handbook.

libgnunetutil

libgnunetutil is the fundamental library that all GNUnet code builds upon. Ideally, this library should contain most of the platform dependent code (except for user interfaces and really special needs that only few applications have). Read more.

APIs

GNUnet offers variaty of APIs for accessing services (using IPC), running services, message queues, or cryptographic operations.