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
|
||||
|
||||
- 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
|
||||
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
|
||||
- [WebSocket](https://tools.ietf.org/html/rfc6455)-based
|
||||
subscriptions to WebSub topics, in addition to the usual
|
||||
[WebHook](https://en.wikipedia.org/wiki/Webhook)-based
|
||||
subscriptions.
|
||||
|
||||
## 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
|
||||
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
|
||||
|
||||
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