Skip to content
comparison

Real-time pub/sub: where Mercure stands.

Mercure is the only option in this comparison that ships as all three at once: an open protocol with a public specification, a free MIT-licensed hub you can self-host with no caps, and a managed Cloud plus self-hosted Enterprise built on the same hub.

Open protocol · IETF-style specFree MIT hub · self-hostCloud + Self-Hosted Enterprise

Figures captured on 2026-09-14 from each provider’s public pricing page, documentation, and protocol specification. Trademarks belong to their respective owners. We are Dunglas Services SAS, the publisher of Mercure.

methodology

Two categories, two comparisons.

Mercure plays in two categories at once: a free OSS self-hostable hub like Socket.IO, AND a managed cloud service with paid Enterprise tiers like Pusher and Ably. Putting them all in a single column would be misleading, so we split the comparison in two.

open source

Self-hostable open source

Mercure’s MIT hub vs the Socket.IO library. Both free, both bounded only by the hardware you run them on.

managed cloud

Managed cloud services

Mercure Cloud vs Pusher Channels vs Ably, on a comparable mid-tier plan from each.

In both we compare verifiable facts: the underlying network protocol, the licensing model, whether a published protocol specification exists, native client requirements, replay semantics, and the published numerical limits of each commercial tier.

We don’t compare subjective attributes such as developer experience, documentation quality, latency, or support responsiveness, since those cannot be measured uniformly.

open source comparison

Self-hostable open source: Mercure hub vs Socket.IO library.

Self-hostable open source comparison between Mercure hub and Socket.IO library
Criterion
MercureOSS hub · MIT
Socket.IO[1]OSS library · MIT
LicenseMITMIT
Concurrent connectionsUnlimited (bounded by your hardware)Unlimited (bounded by your hardware)
History / replayBuilt-in event store with Last-Event-ID replayImplemented by the developer
Underlying network protocolServer-Sent Events over HTTP/2+, with HTTP POST for publishingSocket.IO protocol over WebSockets, with HTTP long-polling fallback
Published protocol specificationIETF-style spec with public conformance testsProject-defined protocol, documented on socket.io
Native browser client (no SDK to ship)EventSource is a browser primitiveSocket.IO client library required
Auto-reconnect with replayNative via Last-Event-ID (web standard)Provided by the Socket.IO client library
JWT-based topic authorizationBuilt into the protocolImplemented by the developer
End-to-end encryption (JWE)Optional, built into the protocolImplemented by the developer
Horizontal scaling backendBolt (file-based), Redis, PostgreSQL[2]Redis adapter (community-maintained)
Single binary deploymentHub built on Caddy, official Docker image and Helm chartLibrary; you ship and operate your own Node.js server
Server runtimeAny (Go binary, runs anywhere)Node.js
  1. [1]Socket.IO is a JavaScript library at socket.io. It is not a hosted service; the server runs on Node.js infrastructure you operate.
  2. [2]Bolt is bundled with the OSS hub. Redis and PostgreSQL transports ship in Mercure Self-Hosted (Startup tier and above); see /pricing.
managed cloud comparison

Managed cloud services: Mercure Cloud vs Pusher Channels vs Ably.

Managed cloud comparison between Mercure Cloud, Pusher Channels and Ably
Criterion
Mercure CloudPro+ · €250/mo
Pusher Channels[3]Business · $299/mo
Ably[4]Pro · $399+/mo, usage-based
Pricing modelFlat monthly tiersFlat monthly tiersUsage-based (messages, peak connections, channel-minutes)
Concurrent connections (mid-tier shown)5,0005,00050,000 (50,000 concurrent channels)
History buffer (mid-tier shown)~100 messages, every planLast event only, TTL up to 30 min[3]2 minutes default; up to 365 days on Pro[4]
Underlying protocolServer-Sent Events (open IETF-style spec)Pusher protocol over WebSocketsAbly protocol over WebSockets, MQTT, SSE
Migration path to self-hosted on the same protocolRun the OSS Mercure hub or Mercure Self-Hosted Enterprise, no code changePusher Enterprise (private cloud, contact sales)Ably self-hosted via on-premises agreement (contact sales)
Vendor independence (open spec, multiple impls)No (single-vendor protocol)No (single-vendor protocol)
Default data residencyEU only (Amsterdam, French SAS)Vendor-defined; see provider termsVendor-defined; see provider terms
Article 28 GDPR DPA published/legal/dpaAvailable on requestAvailable on request
Native browser client (no SDK to ship)EventSource is a browser primitivePusher JS SDK requiredAbly JS SDK required
  1. [3]Pusher Channels pricing is published at pusher.com/channels/pricing. Cache-channel behaviour is documented at pusher.com/docs: a cache channel retains the last triggered event only.
  2. [4]Ably pricing is published at ably.com/pricing. Ably’s “Pro” plan is billed on usage; the figure shown is the published starting price for that tier. Retention is documented at ably.com/docs: two minutes by default, up to 365 days with persistence on Pro.
key findings

Three structural takeaways.

Mercure ships in all three forms

Open source library-style hub for self-host, managed cloud, and a commercial self-hosted edition for compliance-driven deployments. Pusher and Ably are managed-only by default; Socket.IO is a library only.

Open protocol vs single-vendor protocol

Mercure has a public IETF-style specification with conformance tests. Pusher, Ably, and Socket.IO each define their own protocol over WebSockets, owned and evolved by a single vendor.

No client SDK on the browser

Mercure subscribers use EventSource, a primitive that ships in every browser. The other three require a vendor JavaScript library. Auto-reconnect with replay is part of the SSE web standard.

For the technical trade-offs of SSE vs WebSockets (battery, firewalls, binary payloads), see Why SSE over WebSockets.

when each fits

When each option tends to be a good fit.

open + cloud + enterprise

Mercure

Designed for teams that want one protocol, one hub binary, and the ability to move freely between free OSS self-host (no caps), managed Cloud (NoOps, EU-hosted), and self-hosted Enterprise (license-key tiers with HA, Redis, and PostgreSQL transports). Same code path in all three.

managed cloud

Pusher Channels

Designed as a fully managed WebSocket service with first-party SDKs across platforms. A good fit when the priority is a turnkey hosted service with predictable per-tier pricing.

managed cloud

Ably

Designed as a managed messaging platform with multi-protocol delivery (WebSockets, MQTT, SSE) and usage-based billing. A good fit when traffic is spiky and you want billing to track actual volume.

oss library

Socket.IO

Designed as an open source library that runs on your own Node.js server. A good fit when you already operate Node.js application servers and want full control of the runtime, with no hosted-service dependency.

try mercure

Run Mercure in five minutes. Free. No credit card.

Pusher, Ably, and Socket.IO are trademarks of their respective owners. We are not affiliated with any of those companies. Figures on this page are sourced from each provider’s public pricing page and documentation, captured on 2026-09-14. To report an inaccuracy, email contact+brand@mercure.rocks; we update within five business days.