Protocols and Networks
This page lists online messaging and social-networking / social-media / social-graph based technologies.
Contents
Of Protocols and Networks[edit]
In telecommunication, a communication protocol is a system of rules that allow two or more entities of a communications system to transmit information via any kind of variation of a physical quantity. The protocol defines the rules, syntax, semantics and synchronization of communication and possible error recovery methods. Protocols may be implemented by hardware, software, or a combination of both.
Protocols, or more properly, communications protocols, are a set of conventions by which messages are transmitted between nodes on a network. A given communications network is a set of nodes which share a given protocol.
Nodes may support multiple protocols, protocols may be nested or overlayed, and there may be network-to-network message exchange via common protocols.
In the context of online and social media, protocols define the capabilities and limitations of a particular system. These protocols may be internal and proprietary, as with Google+, Facebook, or Twitter, or open as with SMTP (email), NNTP (Usenet), HTTP (Web), or the various protocols of the Federated Networks: ostatus, activitypub, diaspora, etc. An API may expose some or all of a protocol to programmatic tools and/or third-party systems.
Effectively, protocols define networks, given a set of nodes and links between and through messages are passed according to a specific (set of) protocol(s).
Protocols, generally[edit]
Fediverse Protocols[edit]
All node and user counts scraped from https://the-federation.info/ on 19 December 2018
Protocol | Nodes | Users | URL | Github Projects |
---|---|---|---|---|
activitypub | 3,570 | 1,759,710 | https://www.w3.org/TR/activitypub/ | ActivityPub Projects |
dfrn | 102 | 13,420 | https://friendi.ca/about/features/ | dfrn Projects |
diaspora | 431 | 678,175 | https://wiki.diasporafoundation.org/An_introduction_to_the_Diaspora_source | diaspora* Projects |
ostatus | 3,324 | 1,753,820 | https://en.wikipedia.org/wiki/OStatus | OStatus Projects |
webmention | 3 | 6 | https://www.w3.org/TR/webmention/ | Webmention Projects |
zot | 116 | 4,187 | https://project.hubzilla.org/help/en/developer/zot_protocol | Zot Projects |
ActivityPub[edit]
"ActivityPub is a decentralized social networking protocol based on the ActivityStreams 2.0 data format. ActivityPub is an official W3C recommended standard published by the W3C Social Web Working Group. It provides a client to server API for creating, updating and deleting content, as well as a federated server to server API for delivering notifications and subscribing to content." - ActivityPub.Rocks
Github: https://github.com/w3c/activitypub
- ActivityPub.Rocks
- What is ActivityPub and why? (Ben Francis Blog)
- ActivityPub: the new standard for decentralized networks (NextCloud Blog)
dfrn[edit]
"DFRN is a distributed communications protocol which provides privacy and security of communications and also provides the basis for distributed profiles and making connections (friend requests)." - W3C Incubator
Github: https://github.com/friendica/friendica
Diaspora (protocol)[edit]
"diaspora* is a true network, with no central base. There are servers (called “pods”) all over the world, each containing the data of those users who have chosen to register with it. These pods communicate with each other seamlessly, so that you can register with any pod and communicate freely with your contacts, wherever they are on the network. diaspora* uses open web standards such as PubSubHubbub and Webfinger to make this kind of connection possible." - How does diaspora* work?
Github: https://github.com/diaspora/diaspora
- How does diaspora* work?
- "How Diaspora Connects Users", by Sarah Mei (sharamei.com) 17 September 2011. "[F]irst in a series of technical posts about Diaspora’s software architecture and code".
OStatus[edit]
OStatus is a collective name given to a suite of existing protocols which make this possible. They include:
- PubSubHubbub – Real-time publishing ("PuSH")
- ActivityStreams – Represent social actions in XML with Atom
- Salmon – "Upstream" comments and replies
- Portable Contacts – Social graph and contact data sharing
- WebFinger – XML representation of a user's identity in terms of the services they use
Github: https://github.com/OStatus
webmention[edit]
"Webmention is a simple way to notify any URL when you mention it on your site. From the receiver's perspective, it's a way to request notifications when other sites mention it." - W3C Webmention Abstract
Github: https://github.com/w3c/webmention
zot[edit]
"Zot is a JSON-based web framework for implementing secure decentralised communications and services.
It differs from many other communication protocols by building communications on top of a decentralised identity and authentication framework.
The authentication component is similar to OpenID conceptually but is insulated from DNS-based identities. Where possible remote authentication is silent and invisible. This provides a mechanism for internet scale distributed access control which is unobtrusive." - W3C Federation Candidates
Github: https://github.com/friendica/red/wiki/zot
Other Federated Protocols[edit]
Jabber/XMPP[edit]
Jabber or XMPP, the Extensible Messaging and Presence Protocol (XMPP) is a communication protocol for message-oriented middleware. It is an IETF (Internet Engineering Task Force) standard. Designed to be extensible, the protocol has been used also for publish-subscribe systems, signalling for VoIP, video, file transfer, gaming, the Internet of Things (IoT) applications such as the smart grid, and social networking services. Jabber exists since 1999 and was later renamed to XMPP. The name Jabber is still in use, though.
- XMPP homepage
- Wikipedia about Jabber/XMPP
- Movim, an XMPP based social network
- Salut à Toi, another XMPP based social network
- Jabber.org, the original IM service based on XMPP
Matrix[edit]
"Matrix is an open standard for interoperable, decentralised, real-time communication over IP. It can be used to power Instant Messaging, VoIP/WebRTC signalling, Internet of Things communication - or anywhere you need a standard HTTP API for publishing and subscribing to data whilst tracking the conversation history." - What is Matrix?, Matrix FAQ
Github: https://github.com/matrix-org
- Who is Matrix.org?
- Matrix Olm Cryptographic Review
- Why Matrix is the Most Interesting Messaging Solution Today
Scuttlebutt[edit]
Scuttlebutt is a distributed peer-to-peer system, implemented by the scuttlebot software. The Patchwork software implements a social network on top of Scuttlebutt.
Networks, generally[edit]
All node and user counts scraped from https://the-federation.info/ on 19 December 2018
Microblog[edit]
Aardwolf[edit]
Aardwolf is the engine behind a new Facebook-like social platform which is being actively developed.
Aardwolf shares a philosophy and underlying protocols with Mastodon, a federated microblogging platform with over a 1000 independently-run servers, hosting more than a million active users.
Official Site: https://www.aardwolf.social/
Source: github
diaspora*[edit]
A privacy-aware, distributed, open source social network.
- Nodes: 519
- Total Users: 661057
- Monthly Users: 18229
- Supported Protocols: diaspora
Official Site: https://diasporafoundation.org/
Source: github
Friendica[edit]
A Decentralized Social Network
- Nodes: 208
- Total Users: 13420
- Monthly Users: 1168
- Supported Protocols: diaspora, ostatus, dfrn
Official Site: https://friendi.ca/
Source: github
GangGo[edit]
GangGo is a decentralized social network written in GoLang. It uses the same federation library like Diaspora and therefore can participate in conversations like any other Pod!
- Nodes: 2
- Total Users: 187
- Monthly Users: 31
- Supported Protocols: diaspora
Official Site: https://ganggo.git.feneas.org/documentation/
Source: github
GNU social[edit]
GNU social is a continuation of the StatusNet project. It is social communication software for both public and private communications. It is widely supported and has a large userbase. It is already used by the Free Software Foundation.
- Nodes: 6
- Total Users: 48
- Monthly Users: 17
- Supported Protocols: ostatus
Official Site: https://gnu.io/social/
Source: git.gnu.io
Mastodon[edit]
Mastodon is a free, open-source social network server based on open web protocols like ActivityPub and OStatus. The social focus of the project is a viable decentralized alternative to commercial social media silos that returns the control of the content distribution channels to the people. The technical focus of the project is a good user interface, a clean REST API for 3rd party apps and robust anti-abuse tools.
- Nodes: 3208
- Total Users: 1732831
- Monthly Users: 487183
- Supported Protocols: ostatus, activitypub
Official Site: https://joinmastodon.org/
Source: github
microblog.pub[edit]
A self-hosted, single-user, ActivityPub powered microblog.
- Nodes: 3
- Total Users: 2
- Monthly Users: ?
- Supported Protocols: activitypub
Official Site: https://microblog.pub/
Source: github
Misskey[edit]
Misskey is a decentralized microblogging platform born on Earth. Since it exists within the Fediverse (a universe where various social media platforms are organized), it is mutually linked with other social media platforms. Why don't you take a short break from the hustle and bustle of the city, and dive into a new Internet?
- Nodes: 36
- Total Users: 4517
- Monthly Users: ?
- Supported Protocols: activitypub
Official Site: https://misskey.xyz/
Source: github
osada[edit]
Osada is a conversational style macroblogging network powered by hyper-drive social engine, supporting ActivityPub and Zot6 protocols.
- Nodes: 9
- Total Users: 135
- Monthly Users: 74
- Supported Protocols: zot, activitypub
Official Site: https://zotlabs.com/osada
Source: gitlab
Pleroma[edit]
Pleroma is a federated social networking platform, compatible with GNU social, Mastodon and other ActivityPub and OStatus implementations. It is free software licensed under the AGPLv3.
- Nodes: 444
- Total Users: 5104
- Monthly Users: ?
- Supported Protocols: ostatus, activitypub
Official Site: https://pleroma.social/
Source: gitlab
postActiv[edit]
postActiv is a free software project to develop a social networking platform. It is derived from GNU Social, which is itself derived from StatusNet and Laconica. It helps people in a community, company, or group to exchange short status updates, do polls, announce events, or other social activities. Users can choose which people to "follow" and receive only their friends' or colleagues' status messages. They can also view the public timeline of the site to see everyone, or the "whole known network" timeline, to see all the people in sites that have connected with this one, by someone following them. It provides a similar service to proprietary social network sites, but is decentralized, and with many additional features and an open, free software codebase that you can develop your own plugins for, it is much more awesome.
Official Site: https://postactiv.com/
Source: gitea
Rustodon[edit]
A Mastodon-compatible, ActivityPub-speaking server in Rust
- Nodes: 1
- Total Users: 141
- Monthly Users: ?
- Supported Protocols: activitypub
Official Site: https://rustodon.glitch.social/
Source: github
Blog[edit]
dokieli[edit]
dokieli is a clientside editor for decentralised article publishing, annotations and social interactions.
Official Site: https://dokie.li/#publish
Source: github
Fedi.blog[edit]
Easy self-hosted, ActivityPub, Markdown, PHP, NoSQL, fully customisable blog engine for noob web devs and others!
Official Site: https://framagit.org/DavidLibeau/FediBlog
Source: gitlab
Plume[edit]
Federated blogging application, thanks to ActivityPub
- Nodes: 15
- Total Users: 461
- Monthly Users: ?
- Supported Protocols: activitypub
Official Site: https://joinplu.me/
Source: github
WordPress[edit]
Blogging platform, able to communicate with Federation via plugins
- Nodes: 6
- Total Users: 13
- Monthly Users: ?
- Supported Protocols: webmention, ostatus
Official Site: https://wordpress.org
Source: github
Write Freely[edit]
A simple, federated blogging platform.
- Nodes: 58
- Total Users: 1177
- Monthly Users: ?
- Supported Protocols: activitypub
Official Site: https://writefreely.org/
Source: github
Images[edit]
pixelfed[edit]
PixelFed is a federated social image sharing platform, similar to instagram. Federation is done using the ActivityPub protocol, which is used by Mastodon, PeerTube, Pleroma, and more. Through ActivityPub PixelFed can share and interact with these platforms, as well as other instances of PixelFed. a la Instagram
- Nodes: 26
- Total Users: 5064
- Monthly Users: 1020
- Supported Protocols: activitypub
Official Site: https://pixelfed.org/
Source: github
Music[edit]
funkwhale[edit]
Funkwhale is a self-hosted, modern free and open-source music server, heavily inspired by Grooveshark.
- Nodes: 16
- Total Users: 913
- Monthly Users: ?
- Supported Protocols: activitypub
Official Site: https://funkwhale.audio/
Source: gitlab
reel2bits[edit]
Soundcloud-like but simple, easy and KISS (and ActivityPub).
- Nodes: 1
- Total Users: 1
- Monthly Users: ?
- Supported Protocols: activitypub
Official Site: https://sound.otter.sh/user/dashie
Source: github
Video[edit]
PeerTube[edit]
A decentralized video hosting network, based on free/libre software.
- Nodes: 309
- Total Users: 8799
- Monthly Users: ?
- Supported Protocols: activitypub
Official Site: https://joinpeertube.org/
Source: github
Multipurpose[edit]
hubzilla[edit]
Hubzilla is a general purpose communication server integrated with a web publishing system and a decentralised permission system. If this sounds like a bunch of technical mumbo-jumbo to you, just think of it as an independent platform for sharing stuff online (publicly or privately). Hubzilla contains some social network bits, some cloud storage bits, some blog and forum bits, and some content management bits. These are all integrated within a common privacy framework - and it is all decentralised.
- Nodes: 254
- Total Users: 4094
- Monthly Users: 1570
- Supported Protocols: zot, diaspora, ostatus, activitypub
Official Site: https://hubzilla.org/
Source: gitlab
[edit]
Retroshare establish encrypted connections between you and your friends to create a network of computers, and provides various distributed services on top of it: forums, channels, chat, mail... Retroshare is fully decentralized, and designed to provide maximum security and anonymity to its users beyond direct friends. Retroshare is entirely free and open-source software. It is available on Android, Linux, MacOS and Windows. There are no hidden costs, no ads and no terms of service.
Official site: http://retroshare.net
Misc[edit]
activityrelay[edit]
Yet another powerful customizable ActivityPub relay server written in Go
- Nodes: 15
- Total Users: 14
- Monthly Users: ?
- Supported Protocols: activitypub
Official Site: https://relay.toot.yukimochi.jp/
ForgeFed[edit]
ForgeFed (formerly GitPub) is a decentralized federation protocol based on the W3C's ActivityPub, which extends ActivityStream 2.0. It provides a server to server API for pull request, forking and subscription of repositories provided by Git web services (services like GitHub, GitLab, Gogs, Gitea).
Source: github
littr.go[edit]
Link aggregator inspired by reddit using ActivityPub federation.
Official Site: https://littr.me/
Source: github
matrix|synapse[edit]
Synapse is a reference "homeserver" implementation of Matrix from the core development team at matrix.org, written in Python/Twisted. It is intended to showcase the concept of Matrix and let folks see the spec in the context of a codebase and let you run your own homeserver and generally help bootstrap the ecosystem.
- Nodes: 37
- Total Users: ?
- Monthly Users: ?
- Supported Protocols: matrix
Official Site: https://matrix.org/
MobiliZon[edit]
Mobilizon is a tool designed to create platforms for managing communities and events. Its purpose is to help as many people as possible to free themselves from Facebook groups and events, from Meetup, etc.
- Nodes: 1
- Total Users: 3
- Monthly Users: ?
- Supported Protocols: activitypub
Official Site: https://joinmobilizon.org/
Source: gitlab
read.as[edit]
Read.as is a free and open-source long-form reader built on open web protocols (specifically ActivityPub). It helps you gather and curate things to read in a peaceful space. (Feed Reader)
- Nodes: 1
- Total Users: 1
- Monthly Users: ?
- Supported Protocols: activitypub
Official Site: https://read.as
Source: github
Prismo[edit]
Federated link aggregation powered by ActivityPub. (Similar to StumbleUpon or Digg)
- Nodes: 3
- Total Users: 84
- Monthly Users: 33
- Supported Protocols: activitypub
Source: gitlab
Socialhome[edit]
Socialhome is a federated personal profile builder with social networking functionality.
- Nodes: 9
- Total Users: 848
- Monthly Users: 99
- Supported Protocols: diaspora
Official Site: https://socialhome.network/
Source: github
Uncategorized[edit]
Booth[edit]
- Nodes: 1
- Total Users: 1
- Monthly Users: None
Official Site:
Source:
Juick[edit]
- Nodes: 1
- Total Users: None
- Monthly Users: None
Official Site:
Source:
P3k[edit]
- Nodes: 1
- Total Users: 1
- Monthly Users: 1
Official Site: https://indieweb.org/p3k
Source:
Red[edit]
- Nodes: 2
- Total Users: 50
- Monthly Users: 49
Official Site:
Source:
Red_platform[edit]
- Nodes: 5
- Total Users: 66
- Monthly Users: 5
Official Site:
Source:
Redmatrix[edit]
- Nodes: 58
- Total Users: 9
- Monthly Users: 0
Official Site:
Source:
Social-relay[edit]
Application to act as a relay for public posts using the Diaspora protocol. Keeps track of nodes and their subscription preferences, receives payloads and forwards the payloads to subscribers. The aim is to pass public posts around in an efficient way so any new node in the network can quickly subscribe to lots of public activity, without having to wait a long time to create social relationships.
- Nodes: 1
- Total Users: None
- Monthly Users: None
Official Site: https://github.com/jaywink/social-relay
Source: https://github.com/jaywink/social-relay
Zap[edit]
- Nodes: 1
- Total Users: 5
- Monthly Users: 4
Official Site:
Source:
References[edit]
- Digital Communications Protocols (Google docs spreadsheet). An extensive and detailed listing. See related Hacker News discussion.
- Musings on Protocol Design by Stanislav Shalunov, 2005-06-09.
- Words in Federated Space: A Glossary for the Fediverse, a compilation by Peter Gossner.