MCPSERV.CLUB
RetroShare

RetroShare

Self-Hosted

Decentralized secure communication and file sharing

Active(96)
1.9kstars
0views
Updated 1 day ago
RetroShare screenshot

Overview

Discover what makes RetroShare powerful

RetroShare is a peer‑to‑peer communication framework that bundles encrypted chat, mail, file sharing, and forums into a single cross‑platform executable. At its core, it implements a fully decentralized overlay network where every node acts as both client and server. Connections are established over encrypted tunnels built on the *BitDHT* protocol, which provides routing, friend‑based trust management, and distributed hash table lookups. The application’s design prioritizes privacy: all data is end‑to‑end encrypted, and even the routing layer uses onion‑style relays to hide traffic patterns from eavesdroppers.

Friend‑based trust model

Encrypted messaging API

File transfer API

Forum API

Overview

RetroShare is a peer‑to‑peer communication framework that bundles encrypted chat, mail, file sharing, and forums into a single cross‑platform executable. At its core, it implements a fully decentralized overlay network where every node acts as both client and server. Connections are established over encrypted tunnels built on the BitDHT protocol, which provides routing, friend‑based trust management, and distributed hash table lookups. The application’s design prioritizes privacy: all data is end‑to‑end encrypted, and even the routing layer uses onion‑style relays to hide traffic patterns from eavesdroppers.

Architecture

RetroShare’s codebase is written primarily in C++ and leverages the Qt5/Qt6 framework for its GUI, while the underlying networking stack is built on top of libretroshare, a dedicated library that encapsulates BitDHT, OpenPGP key handling (via the bundled openpgpsdk), and a lightweight database layer. The database is an embedded SQLite instance that stores friend lists, message queues, and file metadata. For storage of large files, RetroShare implements a swarming mechanism inspired by BitTorrent, distributing chunks across the network and reassembling them locally. The modular architecture exposes several C++ interfaces that allow developers to hook into events such as new message arrival, file request, or friend invitation.

Core Capabilities

Developers can tap into RetroShare’s event bus through the RetroShareAPI classes. Key features include:

  • Friend‑based trust model: add, accept, and revoke friends programmatically; query friend status.
  • Encrypted messaging API: send and receive text or binary payloads, with optional offline queuing.
  • File transfer API: initiate uploads/downloads, monitor progress, and verify integrity via SHA‑256 checksums.
  • Forum API: create topics, post replies, and sync offline posts when connectivity resumes.
  • Custom plugin hooks: the RetroSharePlugin interface allows dynamic loading of shared libraries that can extend UI, add new services, or intercept traffic.

Deployment & Infrastructure

RetroShare is self‑hosted by default; each instance runs on a single machine and peers with others over the public internet. The application is lightweight (≈ 50 MB binary) and can run on embedded devices such as Raspberry Pi. It supports Docker images, with a community‑maintained retroshare/retroshare container that exposes the standard RPC ports (443 for secure tunnels, 20000+ for BitDHT). Scaling is achieved by deploying multiple nodes and configuring them to connect as friends; the overlay automatically balances traffic. For high‑availability, developers can orchestrate replicas behind a reverse proxy that forwards RPC requests to the nearest node.

Integration & Extensibility

RetroShare’s plugin architecture is the primary integration point. Plugins are compiled against the public libretroshare headers and can register UI panels, add new menu actions, or expose REST endpoints. The project also offers a JSON‑RPC interface that can be enabled in the configuration, allowing external services (e.g., a web dashboard or mobile app) to control messaging and file sharing. Webhooks are not built‑in, but developers can implement them within plugins to trigger external actions on events such as message receipt or file completion.

Developer Experience

The documentation is hosted on Read the Docs and covers build instructions, API reference, and plugin development guides. Community support is active on GitHub issues, a dedicated Discord server, and a mailing list. The source tree is modular, with clear separation between GUI, core networking, and plugin subsystems, making it approachable for contributors. The licensing (GPL‑3.0) encourages open collaboration while ensuring that derivative works remain free.

Use Cases

  • Private corporate messaging: Enterprises can deploy a cluster of RetroShare nodes to replace VPN‑based chat, ensuring end‑to‑end encryption without a central server.
  • Disaster‑resilient communication: In regions with unreliable connectivity, RetroShare’s offline mail and file sync capabilities allow users to store data locally until the network is restored.
  • Decentralized content platforms: Developers can build a censorship‑resistant forum or file archive by leveraging RetroShare’s swarm distribution and friend‑based access controls.

Advantages

RetroShare offers a unique blend of decentralization, strong encryption, and multi‑service integration in one package. Unlike centralized services that rely on a single point of failure, RetroShare’s overlay scales organically with the number of participants. The use of open standards (OpenPGP, BitTorrent‑style swarming) ensures interoperability with other tools. For developers seeking a self‑hosted communication stack that can be embedded into larger systems, RetroShare’s modular API and container support provide a solid foundation for building custom applications without reinventing the networking layer.

Open SourceReady to get started?

Join the community and start self-hosting RetroShare today

Weekly Views

Loading...
Support Us
Most Popular

Infrastructure Supporter

$5/month

Keep our servers running and help us maintain the best directory for developers

Repository Health

Loading health data...

Information

Category
apis-services
License
NOASSERTION
Stars
1.9k
Technical Specs
Pricing
Open Source
Docker
None
Supported OS
LinuxWindowsmacOSAndroid
Author
RetroShare
RetroShare
Last Updated
1 day ago