Mercure in a Few Words
The Mercure protocol:
- native browser support, no lib nor SDK required (built on top of HTTP and server-sent events)
- compatible with all existing servers, even those who don't support persistent connections (serverless architecture, PHP, FastCGI...)
- built-in connection re-establishment and state reconciliation
- JWT-based authorization mechanism (securely dispatch an update to some selected subscribers)
- performant, leverages HTTP/2 multiplexing
- designed with hypermedia in mind, also supports GraphQL
- auto-discoverable through web linking
- message encryption support
- can work with old browsers (IE7+) using an
EventSource
polyfill - connection-less push in controlled environments (e.g. browsers on mobile handsets tied to specific carriers)
The Mercure.rocks hub implementation:
- Fast, written in Go
- Works everywhere: static binaries and Docker images available
- Automatic HTTP/2 and HTTPS (using Let's Encrypt) support
- CORS support, CSRF protection mechanism
- Cloud Native, follows the Twelve-Factor App methodology
- Open source (AGPL)