Repolode
dunglas

dunglas/mercure

A protocol and Go reference hub for pushing real-time data updates to browsers and HTTP clients over Server-Sent Events.

Open-source alternative to:Pusher

Stars
5,358
Forks
348
Open issues
17
Last commit
3 days ago

What is it?

Mercure is a protocol for pushing data updates to web browsers and other HTTP clients. It is aimed at publishing asynchronous and real-time updates of resources served through web APIs to reactive web and mobile apps.

This repository contains the protocol specification and a production-grade reference hub written in Go, which acts as the server. The hub is distributed as a free AGPL-licensed program with an official Docker image, and it ships with a Go library that lets any Go application implement the protocol directly without running a separate hub. A managed, high-scalability version of the hub is offered as a hosted service.

The protocol is also published as an Internet-Draft, so other implementations can interoperate with clients that speak it.

Key features

  • 01Pushes updates to browsers and HTTP clients over Server-Sent Events.
  • 02Ships a reference hub written in Go with an official Docker image.
  • 03Provides a Go library for embedding the protocol directly in an application.
  • 04Publishes the protocol specification as an Internet-Draft.

Use cases

  • Live-updating a web dashboard when backend API resources change.
  • Sending asynchronous job progress or notifications to reactive web and mobile apps.
  • Embedding real-time push directly into a Go service without a separate hub.

Quick start

  1. 1

    Read the getting started guide on mercure.rocks

  2. 2

    Use the official Docker image from Docker Hub (dunglas/mercure)

Things to know

  • The hub is licensed under AGPL, a copyleft license that may restrict how you can use it in proprietary products.

In collections

Topics

#realtime#server-sent-events#push#golang#streaming-api#web-api#api#async-api#caddy#graphql

FAQ

What is mercure?
A protocol and Go reference hub for pushing real-time data updates to browsers and HTTP clients over Server-Sent Events. Mercure is a protocol for pushing data updates to web browsers and other HTTP clients. It is aimed at publishing asynchronous and real-time updates of resources served through web APIs to reactive web and mobile apps.
Is mercure free to use? What license does it have?
mercure is open source under the AGPL-3.0 license. Check the license terms before using it in commercial products.
Is mercure still maintained?
Actively maintained. The last commit to mercure was on Nov 4, 2026.
What can I use mercure for?
Live-updating a web dashboard when backend API resources change. Sending asynchronous job progress or notifications to reactive web and mobile apps. Embedding real-time push directly into a Go service without a separate hub.
How do I install mercure?
Read the getting started guide on mercure.rocks Use the official Docker image from Docker Hub (dunglas/mercure)
Where can I get mercure?
The source code and installation instructions are on GitHub: https://github.com/dunglas/mercure

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects