GNUnet
GNUnetは分散型P2P通信のためのフリーソフトウェアフレームワークであり、公式のGNUプロジェクトのパッケージである。データ・リンク暗号化、ピアの検出、リソース割り当て、様々な手段での通信(TCP、UDP、HTTP、HTTPS、無線LAN)、基本的なP2Pアルゴリズムとしてルーティング、マルチキャスト、 交通トラフィック推定機能を持つ。
GNUnetの基本的なネットワークトポロジーはメッシュネットワークである。GNUnetはスモールワールドネットワークに最適化されたKademliaのランダム化版分散ハッシュテーブルを内蔵している。GNUnetはユーザーの信頼された友人だけに通信を制限するためのトポロジーオプションを有する。ユーザーの「友人」の更に友人といった閉じたネットワーク上で、互いにIPアドレスを直接公開することなくファイル交換が可能である。
GNUnetはUniform Resource Identifier (URI) 識別子（IANA未認可）を使用する。GNUnetのURIはモジュールとモジュール特有識別子の二つで構成される。GNUnetのURIは"gnunet://module/identifier"という形式であり、"module"がモジュール名であり"identifier"がモジュール特有識別子である。
コードの基礎はC言語で書かれているが、 gnunet-javaの進展によりJavaにより拡張機能を開発するためのAPIも存在する。GNUnetは現在Linux、 BSD、 macOS、Solaris、 Windowsで動作する。
GNUnetはフレームワークの主なディストリビューションで様々なP2Pアプリケーションを提供し、追加プロジェクトのSecuShare等がそれを拡張している。