Pump.io: Activity Streams Engine and Federated Social Networking Protocol

Pump.io: Activity Streams Engine and Federated Social Networking Protocol

By rhyzom | rhyzom | 13 Apr 2020


Am looking up various protocols, specs and RFCs in order to get a better sense of how to go about my undertaking (including things like IRC, USEnet, etc. & more 21th century things like Mastodon, Diaspora...) — here's one that's more along the lines of how I'm trying to think about things (KISS principle, minimalist simplicity, etc.) And I do vaguely remember identi.ca and another such social media from years ago running on the same protocol... Anyway, perhaps more of a note-to-self, some of these posts of mine lately, but hopefully also of interest to some of you as well.

So, pump.io is a general-purpose activity streams engine that can be used as a federated social networking protocol. It's an extension and follow-up to StatusNet (of which identi.ca was the largest such service) that was started by Evan Prodromou. Pump.io is designed to be much more lightweight and efficient than its predecessor. It's written in Node.js and implements Activity Streams as the format for commands and for transferring data (via a simple REST API).

ActivityStreams itself is an open format spec for activity stream protocols used to syndicate activities in social web apps and services (similar to, say,  Facebook's or Twitter's). The standard provides a general way to represent activities. For instance "John added Taiwan to his list places to visit". Would be represented as actor:john, verb:add, object:Taiwan, target:placestovisit.

As for StatusNet, it is an open source software microblogging server (written in PHP and now known as GNU social) that implements the OStatus standard for interoperability (that is, while offering Twitter-like functionality, seeking to provide the capacity/potential for open, inter-service and distributed communications between microblogging communities). The standard describes how a suite of open protocols, including AtomActivity StreamsWebSubSalmon, and WebFinger, can be used together, which enables different microblogging server implementations to route status updates between their users back-and-forth, in near real-time.

Apart from Node.js, pump.io requires a database server — usually a NoSQL of some sort (such as MongoDB or Redis). It can run on low resource hardware and can be operated via the web UI or some other client (via the API).

How do you rate this article?

4


rhyzom
rhyzom

Verum ipsum factum. Chaotic neutral.


rhyzom
rhyzom

Ad hoc heuristics for approaching complex systems and the "unknown unknowns". Techne & episteme. Verum ipsum factum. In the words of Archimedes: "Give me a lever and a place to rest it... or I shall kill a hostage every hour." Rants, share-worthy pieces and occasional insights and revelations.

Publish0x

Send a $0.01 microtip in crypto to the author, and earn yourself as you read!

20% to author / 80% to me.
We pay the tips from our rewards pool.