2016-11-20 03:27:13 +00:00
|
|
|
# RacketMQ: An implementation of W3C WebSub
|
|
|
|
|
|
|
|
This is an implementation of a W3C WebSub Hub in Racket, using the
|
|
|
|
actor-style research language [Syndicate](http://syndicate-lang.org/).
|
|
|
|
|
|
|
|
## 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 extract `link` elements from
|
|
|
|
any kind of XML or HTML document, nor does it implement
|
|
|
|
`.host-meta` discovery
|
|
|
|
|
|
|
|
- Support for `hub.secret` and `hub.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>.
|
2015-09-30 16:17:50 +00:00
|
|
|
|
|
|
|
## License
|
|
|
|
|
2016-11-05 02:33:43 +00:00
|
|
|
Copyright © 2015, 2016 Tony Garnock-Jones <tonyg@leastfixedpoint.com>
|
2015-09-30 16:17:50 +00:00
|
|
|
|
|
|
|
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/>.
|