Update README and add TODO
This commit is contained in:
parent
2a9273142a
commit
e1c7ecd9a7
41
README.md
41
README.md
|
@ -33,15 +33,17 @@ checkout.
|
||||||
("upstream") hub
|
("upstream") hub
|
||||||
|
|
||||||
- Support for polling and push-notification for remote topics, with
|
- Support for polling and push-notification for remote topics, with
|
||||||
configurable poll interval
|
configurable poll interval; this allows *hub chaining*.
|
||||||
|
|
||||||
- Uses HTTP `Link` headers when retrieving a topic to determine
|
- Uses HTTP `Link` headers when retrieving a topic to determine
|
||||||
canonical hub and topic URLs; does not extract `link` elements from
|
canonical hub and topic URLs; does not extract `link` elements from
|
||||||
any kind of XML or HTML document, nor does it implement
|
any kind of XML or HTML document, nor does it implement
|
||||||
`.host-meta` discovery
|
`.host-meta` discovery
|
||||||
|
|
||||||
- Support for `hub.secret` and `hub.lease_seconds` protocol
|
- [WebSocket](https://tools.ietf.org/html/rfc6455)-based
|
||||||
parameters
|
subscriptions to WebSub topics, in addition to the usual
|
||||||
|
[WebHook](https://en.wikipedia.org/wiki/Webhook)-based
|
||||||
|
subscriptions.
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
|
@ -207,6 +209,39 @@ At the time of writing, no official list of conformance criteria
|
||||||
exists; however, there is a draft list of Candidate Recommendation
|
exists; however, there is a draft list of Candidate Recommendation
|
||||||
implementation criteria at <https://github.com/w3c/pubsub/issues/56>.
|
implementation criteria at <https://github.com/w3c/pubsub/issues/56>.
|
||||||
|
|
||||||
|
## Codebase Layout
|
||||||
|
|
||||||
|
Files at the toplevel of the git checkout:
|
||||||
|
|
||||||
|
- `COPYING`, `gpl.txt`, `lgpl.txt`: Licensing and copyright information
|
||||||
|
- `info.rkt`: Racket package control metadata
|
||||||
|
- `nginx.conf`: Example nginx configuration file, for running RacketMQ behind nginx
|
||||||
|
|
||||||
|
In the `racketmq/` directory are the sources for the RacketMQ server:
|
||||||
|
|
||||||
|
- `hub.rkt`: **Main entry point for RacketMQ server**
|
||||||
|
- `config.rkt`: Actor that tracks changes in config files
|
||||||
|
- `protocol.rkt`: Definitions of protocol structures for coordination among RacketMQ actors
|
||||||
|
- `hub/`: Source code for the main functions of the RacketMQ server
|
||||||
|
- `hub/static-content.rkt`: Actor serving static content from `htdocs/`
|
||||||
|
- `hub/subscription.rkt`: Actors implementing downstream WebHook-based subscriptions
|
||||||
|
- `hub/websocket.rkt`: Actors implementing downstream WebSocket-based subscriptions
|
||||||
|
- `hub/topic-demand.rkt`: Actor that analyzes a subscription topic
|
||||||
|
URL, deciding whether it represents a local topic or a remote
|
||||||
|
topic.
|
||||||
|
- `hub/local-topic.rkt`: Actor implementing a local RacketMQ topic
|
||||||
|
- `hub/remote-topic.rkt`: Actors implementing a remote RacketMQ
|
||||||
|
topic and WebSub subscribers that relay content from upstream
|
||||||
|
hubs (if any) to downstream subscribers
|
||||||
|
|
||||||
|
The `racketmq/` directory also contains a few other files of interest:
|
||||||
|
|
||||||
|
- `defaults.rktd`: Fully-commented RacketMQ configuration file
|
||||||
|
- `poke.rkt`: Simple interactive tool for interacting with RacketMQ
|
||||||
|
- `run`: [Daemontools](https://cr.yp.to/daemontools.html) startup script for the server
|
||||||
|
- `log/run`: Daemontools logging startup script for the server
|
||||||
|
- `htdocs/`: Static files to be served by the server
|
||||||
|
|
||||||
## Bug Reports
|
## Bug Reports
|
||||||
|
|
||||||
Please report issues using this project's Github issues page,
|
Please report issues using this project's Github issues page,
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
|
||||||
|
✓ HEAD for racketmq topic links
|
||||||
|
|
||||||
|
✓ Proper async verification
|
||||||
|
|
||||||
|
✓ Split implementation into multiple modules
|
||||||
|
|
||||||
|
✓ Remove "unbounded" lease duration
|
||||||
|
|
||||||
|
✓ Configurability
|
||||||
|
|
||||||
|
✓ Explain codebase layout in README
|
||||||
|
|
||||||
|
CORS (ugh ugh ugh)
|
||||||
|
|
||||||
|
Secrets
|
||||||
|
|
||||||
|
Allow secret of a subscription to be changed
|
||||||
|
|
||||||
|
Durable subscriptions and other kinds of hub state
|
||||||
|
|
||||||
|
Make second-and-subsequent subscriptions to remote topics behave the same as first subscriptions:
|
||||||
|
- randomize the first poll of the content
|
||||||
|
- never do a poll if the poll interval is "none" for the topic as a whole
|
||||||
|
|
||||||
|
Local topic history retention and browsing
|
Loading…
Reference in New Issue