dunglas/mercure

🪽 An open, easy, fast, reliable and battery-efficient solution for real-time communications

View on GitHub ↗Jump to charts ↓Open shareable report →

Summary Information

Updated 59 minutes ago
Added to GitGenius on September 12th, 2026
Created on July 14th, 2018
Open Issues & Pull Requests: 23 (+0)
GitHub issues: Enabled
Number of forks: 347
Total Stargazers: 5,309 (+0)
Total Subscribers: 57 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 9.6 hours
Mean response time: 107.0 days
90th percentile: 191.5 days
Tracked items: 76

Most active contributors

Sign in to see contributor activity.

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Only 15% of issues opened in the past year have been closed. Three people close 57% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 9
New in 7 days: 1
Closed in 7 days: 1
Avg open age: 536 days
Stale 30+ days: 7
Stale 90+ days: 1

Recent activity

Opened in 7 days: 1
Closed in 7 days: 1
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • wontfix (42)
  • enhancement (9)
  • pinned (5)
  • bug (3)
  • question (2)
  • spec (2)
  • invalid (1)

Most active issues this week

Detailed Description

Mercure is a protocol and reference implementation for pushing real-time data updates to web browsers and HTTP clients in a battery-efficient manner. The project provides both the protocol specification and a production-grade hub server written in Go, along with a library for implementing the protocol directly in Go applications.

Mercure solves the problem of delivering real-time updates to web and mobile applications by establishing a standardized protocol built on HTTP and server-sent events. Rather than requiring clients to continuously poll for changes, the protocol allows servers to push updates to subscribed clients efficiently. The approach emphasizes reliability and battery efficiency, making it suitable for mobile environments where connection overhead matters.

Teams building reactive web applications, mobile apps, or systems that need to publish async updates through web APIs should consider Mercure. It works well for scenarios where you need to keep multiple clients synchronized with server-side state changes without the complexity of traditional WebSocket implementations. The project provides a complete stack: the protocol specification itself, a ready-to-deploy hub server, a Go library for direct protocol implementation, and an official Docker image for containerized deployment. A managed, high-scalability hosted version is also available for teams preferring not to operate their own infrastructure.

The project maintains an active specification process, with the protocol documented as an Internet-Draft. Development shows consistent engagement with the codebase, regular updates to both the hub implementation and supporting libraries, and ongoing refinement of the protocol specification. The project welcomes community contributions through its established contribution guidelines.