Brussels / 2 & 3 February 2019


Retroshare JSON API

Making libRetroshare a generic service for decentralized and private communication

RetroShare is a platform that allows users to create a fully decentralized network with a high level of security, privacy and confidentiality. It offers a unique combination of features (File transfer, publishing channels, forums, distributed chat, asynchronous email,...) that provide users lots of ways to interact. Its generic nature allows to create new services based on an existing cryptographic and networking backend.

The presentation will start with a short overview of the RetroShare software and motivate the need for a JSON API to safely access the features offered by the core of the software. Our JSON API, to be released in December 2018, uses clever techniques to automatically generate handles from existing code based on Doxygen capabilities as well as a very compact serialization technique. We will explore the potential of the JSON API with concrete examples including the --preliminary-- web interface and Android RetroShare clients. Finally, a call to developers will be made, based on generic examples, while proposing multiple ideas of distributed services to be developed on top of it.

The detailed plan for the presentation will be the following. Each line indicates the approximate time duration and number of slides. The presentation is tuned to approximately 20 mins.

Overview of the Retroshare platform

  • Services offered by the application (FT, channels, forums, identities, etc)
  • Architecture (libretroshare + Qt UI, main components)
  • Motivation for a JSON API (use of RetroShare as a background library for decentralized communication, Android client, web interface, getting rid of old UI...)


  • Automated serialization
  • Automated JSON API code stub generation
  • Interaction, syntax
  • Authentication

Concrete examples

  • RetroShare's new web interface
  • Experimental mobile chat app based on RetroShare JSON API
  • App based on RetroShare JSON API

Call for contributions

  • ideas of applications
  • conclusion and contacts


Photo of Gioacchino Mazzurco Gioacchino Mazzurco