dunglas/mercure
Mercure, a protocol for server-sent live updates: reference implementation
10M+
Mercure is an open solution for real-time communications designed to be fast, reliable, and battery-efficient. It is a modern and convenient replacement for both the Websocket API and the higher-level libraries and services relying on it.
Mercure is especially useful to add streaming and asynchronous capabilities to REST and GraphQL APIs. Because it is a thin layer on top of HTTP and SSE, Mercure is natively supported by modern web browsers, mobile applications, and IoT devices.
A free (as in beer, and as in speech) reference server as well as a hosted service are available.
The protocol is maintained in this repository and is also available as an Internet Draft.
A reference, production-grade, implementation of a Mercure hub (the server) is also available in this repository. It's free software (AGPL) written in Go. It is provided along with a library that can be used in any Go application to implement the Mercure protocol directly (without a hub) and an official Docker image.
In addition, a managed and high-scalability version of the Mercure.rocks hub is available on Mercure.rocks.
See https://mercure.rocks/docs/hub/license.
Created by Kévin Dunglas. Graphic design by Laury Sorriaux. Sponsored by Les-Tilleuls.coop.
docker pull dunglas/mercure