You are here

About GNUnet

GNUnet is an alternative network stack for building secure, decentralized and privacy-preserving distributed applications. Our goal is to replace the old insecure Internet protocol stack. Starting from an application for secure publication of files, it has grown to include all kinds of basic protocol components and applications towards the creation of a GNU internet.

GNUnet is an official GNU package. GNUnet can be downloaded from GNU (ftp) and the GNU mirrors (ftp).

Read more Friday, February 19, 2010 - 22:34 Christian Grothoff

gnURL 7.56.0 released

Today gnURL has been released in version 7.56.0.

Merges from cURL 7.56.0 upstream release and some gnURL specific fixes.

Read more Sunday, October 8, 2017 - 17:25 ng0

gnURL 7.55.1-4 released

Today gnURL has been released in version 7.55.1-4 as a patch release.

Mainly this fixes:
You no longer have to run "./buildconf" before compiling gnURL, and therefore autoconf + automake as dependency are dropped.

Read more Thursday, September 21, 2017 - 14:58 ng0

gnURL 7.55.1-3 released

Today gnURL has been released in version 7.55.1-3 as a patch release to address some gnURL specific issues.

Read more Tuesday, August 22, 2017 - 19:07 ng0

gnURL 7.55.1 released

Today gnURL has been released in version 7.55.1 following the last version-release of cURL.

Read more Sunday, August 20, 2017 - 18:57 ng0

gnURL 7.55.0 released

Today the microfork of cURL, gnURL, has been released in version 7.55.0 following the last version-release of cURL.

Read more Wednesday, August 9, 2017 - 15:45 ng0

gnURL 7.54.1 released

Today the microfork of cURL, gnURL, has been released in version 7.54.1 following the last version-release of cURL. This fixes fixes CVE-2017-9502 among other issues, as always refer to the cURL Changelog for more.

You have to run "./buildconf" before compiling gnURL.

The download is available as usual at

The tarball of this version has been signed with A88C8ADD129828D7EAC02E52E22F9BBFEE348588

Read more Saturday, June 17, 2017 - 15:03 ng0

gnURL 7.54.0 released

Today the microfork of cURL, gnURL, has been released in version 7.54.0 following the last version-release of cURL. This fixes fixes CVE-2017-7468: switch off SSL session id when client cert is used among other issues (see for the full Changelog).

You have to run "./buildconf" before compiling gnURL.

The download is available as usual at

The tarball of this version has been signed with my signing key, available on keyservers:
shortkey: 0xACBC390F7CB7D667
(long) EDDSA key 4E87D27C7014FC53B004D17DACBC390F7CB7D667

There's a known incompability between old and new GnuPG versions and keys, the signature is valid. In case you encounter errors during verification try: 1) ask more keyservers to update their version, 2) update your version of GnuPG and their dependencies.

Read more Thursday, April 20, 2017 - 14:41 ng0

announcing infotropique - call for participation

(read below for an update)
Today I’m announcing pragmatique infotropique, a new project.

Its primary focus is to open up the efforts I’ve been working on for some time to other people, to provide space as a community, and to work on more than just software.

Our main project is pragmaOS infotropique OS, an on-going project to build a live-system for applications around GNUnet and further software solutions which make use of GNUnet, based on GuixSD.

We are currently setting up our new development server, so there’s no immediate fancy environment to sign up at and start hacking.

Our software page shows an early road map without the targeted versions.

You can read more about our project at – be aware that this is an early version of the web site.

Let me know what you think and join the fun!

(this first appeared on my personal blog and is reposted here on my personal GNUnet blog for the GNUnet relation)

edit on 2017-07-14:
pragmatique hasn't lasted long as a name, infotropique and is what our collective is named now (the change happened a while ago).
We are currently tweaking the detail descriptions and ideas so that they can be transported in less obscure texts for other people - in spoken dialogues and monologues it is easy to get the whole picture. The website as it is right now doesn't cover all of it (or even why you should use it when it's ready, or who the intended group of people is for the system - Even the goal and content of the project was more than just first expressed, it goes beyond just a live-system for GNUnet applications). Stay tuned again for more.

Read more Saturday, April 8, 2017 - 07:54 ng0

GNU Summer of Code 2017

This year GNUnet is participating again in the GNU Summer of Code.

If you have any questions or another project proposal, send a mail to the gnunet-developers list.

Project proposals:

Rust APIs for GNUnet services

There are a variety of GNUNet APIs that should be exposed in the Rust wrappers. Implementing these will require extending the port of GNUNet utils written by Andrew Cann and Kelong Cong.

As an introduction to the code base, we suggest that the student and Jeff Burdges together update the asynchronous IO system from gjio to futures-rs or another layer built upon it. Jeff Burdges is expected to concurrently be implementing a GNUNet API for his own mix network work.

Mentors: Jeff Burdges

Required Skills: Rust

Difficulty level: low

Tor compatibility for GNUnet

Implement the AnycastExit spec to enable GNUnet clients to connect over Tor.

Mentor: Jeff Burdges

Note: There was a Special TLDs spec to allow Tor to resolve domain names using GNS over Tor too, but currently that's on hold until folks think more about how names should be moved around the local system. We're calling this more collaborative approach NSS2 for now.

Required Skills: C

Difficulty level: medium

Android compatibility for GNUnet

Implement rudimentary Android compatibility for GNUnet, in part by porting the GNUnet utils scheduler to act as a thin wrapper over libuv.

Mentors: Jeff Burdges and Christian Grothoff

Implementation of a replacement for PANDA

Implementation of a replacement for PANDA (see Pond) with better security, and maybe integration with the GNU Name System for key exchange.

Mentor: Jeff Burdges

Required Skills: Rust or C, crypto

Difficulty level: high

GNUnet Web-based User Interface

Implementation of a Web-based UI for GNUnet similar to GNUnet-Gtk with a yet to be determined framework such as Angular2. This includes the design and implementation of not yet existing REST APIs that expose the GNUnet API.

Mentor: Martin Schanzenbach

Required Skills: C, JavaScript, CSS

Difficulty level: medium

secushare: Implement social networking features on top of pubsub channels

Implement different place types and file sharing by creating a new place for the shared content.

Place types to be implemented:

  • File: generic file with comments
  • Image: display an image with comments referencing a region of the image
  • Sound: play a sound file with comments referencing a timestamp
  • Directory/Album: pointers to File / Image / Sound places
  • Event: with RSVP
  • Survey: ask your social neighborhood questions in a structured form

Also provide the following UI functionality:

  • Fork existing channels, reorganize people into new chatrooms or channels.
  • Share a post (edit and repost something elsewhere, on a fan page for example).
  • Edit a previously published post + offer edit history to readers.
  • Control expiry of channel history.

See also

Mentors: lynX

Required Skills: C/C++

Difficulty level: high

secushare: Implement a Social Graph API for contact adoption and more

Implement aggregation of distributed state from various channels
in order to provide for a powerful social graph API capable of
producing social network profiles, dashboards, a calendar out of
upcoming event invitations (if available), social search functionality
and most of all to make it easy for users to adopt cryptographic
identities of their contacts/friends simply by finding them in the
social graph of their existing contacts ("This is Linda. You have 11
contacts in common with her. [ADD]").

Related to

Mentors: lynX, t3sserakt

Required Skills: C

Difficulty level: high

secushare: Implement integration with traditional e-mail

  • Emulate IMAP/SMTP protocols as necessary to transform traditional mail clients into secushare user interfaces.
  • Think of ways to map e-mail addresses to secushare identities.
  • Encode or translate various e-mail features into secushare equivalents.
  • Parts of secushare are currently written in Rust, therefore Rust is preferred for this task but it is not an requirement.

Mentors: t3sserakt, lynX

Required Skills: C

Difficulty level: high

GNUnet auction

Implementation of the GNUnet auction system described in
Chapter 3 of this thesis. Specific tasks are adding smart contract creation and round time enforcement to libbrandt as well as creating the GNUnet auction service, library and the three user interface programs create, info and join.

Mentors: mate, cg

Required Skills: C

Difficulty level: medium

Read more Wednesday, March 1, 2017 - 22:18 Christian Grothoff


Subscribe to Front page feed