RetroShare is a decentralized, private, secure, cross-platform, communication software.
RetroShare functionalities (file sharing, chat, messages, forums, channels…) are implemented under the hood by libretroshare which offer a documented C and JSON API.
While RetroShare is an application on it’s own, libretroshare is meant to be used as part of other programs, some of them are RetroShare-gui, RetroShare-service, elRepo.io (let us know if there are more).