2.2 KiB
RacketMQ: An implementation of W3C WebSub
This is an implementation of a W3C WebSub Hub in Racket, using the actor-style research language Syndicate.
What is WebSub?
On the 20th of October 2016, the W3C released a First Public Working Draft of (what was called at the time) PubSub, later renamed to WebSub.
See the specification of the W3C WebSub protocol at
https://www.w3.org/TR/pubsub/ (and track its development at
https://github.com/w3c/pubsub).
N.B.: Those URLs will eventually have websub
in place of pubsub
.
Features
-
Offers both local topics, topics whose canonical hub is this hub, and remote topics, topics whose canonical hub is some other ("upstream") hub
-
Support for polling and push-notification for remote topics, with configurable poll interval
-
Uses HTTP
Link
headers when retrieving a topic to determine canonical hub and topic URLs; does not extractlink
elements from any kind of XML or HTML document, nor does it implement.host-meta
discovery -
Support for
hub.secret
andhub.lease_seconds
protocol parameters
Conformance
At the time of writing, no official list of conformance criteria exists; however, there is a draft list of Candidate Recommendation implementation criteria at https://github.com/w3c/pubsub/issues/56.
Bug Reports
Please report issues using this project's Github issues page, https://github.com/tonyg/racketmq/issues.
License
Copyright © 2015, 2016 Tony Garnock-Jones tonyg@leastfixedpoint.com
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this program (see the files "lgpl.txt" and "gpl.txt"). If not, see http://www.gnu.org/licenses/.