Hi everyone,
I'd like to announce that earlier this month was the start of a new
project: Sockethub (
http://sockethub.org)
Sockethub aims to implement a "polyglot" approach to social and other
interactive messaging applications, and assist unhosted web app
developers by providing server-independent, server-side functionality.
So, in short, it's a socket server that can handle server-based tasks,
and messaging via. various protocols, all using a single, defined,
JSON API (working draft:
https://raw.github.com/sockethub/sockethub/master/doc/api_protocol.txt)
- loosely following Activity Streams.
App developers need not concern themselves with the specifics of the
platform they hope to integrate messaging with, they define a message
object, and specify the platform they'd like to message on (ie. smtp,
facebook) and the message will be sent. No protocol specific code lies
in the application.
Leaving the implementation details of various platforms out of the
application code frees up the developer to focus on their app, and not
on integrating X new social network, or pushing a new release because
of Y's breaking API updates. Instead Sockethub worries about all that
stuff (hooray!), speaking all of the languages needed to get the job
done, and just send the message.
While still in it's infancy, we made quite a lot of initial progress
at
http://hackerbeach.org this month, while sipping coconuts and
working on our tans. The basic structure is already in place, using
Redis to asynchronously queue and process requests, with a module
system for adding platforms. Each platform should expose a function
named after each verb they wish to implement. Niklas Cathor even
whipped up initial proof of concept for XMPP support, sent himself a
message and responded (it was very exciting).
This project is graciously funded by NLNET, and the project
proposal/plan is publicly available in the Sockethub repository:
https://raw.github.com/sockethub/sockethub/master/doc/nlnet_proposal.txt
So check it out, star it, clone it, ask questions, file bugs, request
platforms/features - or help out and contribute code! We'll continue
to use the unhosted list for announcements, and otherwise all the
action should be taking place on github issues.
Thanks for your time,
-Nick Jennings
http://sockethub.org
http://github.com/sockethub/sockethub