Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Centrifugo Bundle Laravel Package

fresh/centrifugo-bundle

PHP bundle that integrates the Centrifugo real-time messaging server into Symfony apps. Configure connections, issue JWT client tokens, publish messages to channels, and add websocket-powered live updates, notifications, and presence features with minimal setup.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy on realtime transport. Buy the transport (Centrifugo, Apache-2.0, self-hostable) instead of building websocket infrastructure in PHP; this bundle is only the glue. The decision it enables is "we will not run long-lived PHP websocket workers" — Centrifugo is a standalone Go binary that scales independently of PHP-FPM, so realtime stops being coupled to the application server's lifecycle.
  • Feature feasibility. Presence, join/leave events, channel history, and server-side publish are all Centrifugo capabilities this bundle makes cheap to expose. Live notifications, presence indicators, collaborative editing cursors, and live dashboards move from "needs a spike" to "a few days of work."
  • Roadmap sequencing. Adopt early if realtime is within a two-quarter horizon. Channel naming, token issuance, and the publish boundary are decisions you want baked into the domain model before it hardens around polling.
  • Stack constraint / hosting decision. It formalizes an architectural commitment: the websocket server lives out-of-process. Good fit for teams on managed PHP hosting with no appetite for Swoole/RoadRunner/Octane-style workers.
  • Vendor and exit risk. Self-hosted OSS transport means no per-connection SaaS spend and no lock-in. The bundle itself is MIT and trivially replaceable — the real interface is "one HTTP publish call plus JWT signing," reproducible in a day.

When to Consider This Package

  • Consider it if: the application is Symfony 6/7, Centrifugo is already chosen or being evaluated via a low-friction PoC, and you need server-to-client push, presence, or channel history with DI-based configuration instead of hand-rolled Guzzle wiring.
  • Consider it if: you want realtime without a paid SaaS (Pusher/Ably) and without operating PHP websocket workers yourself.
  • Stop — stack mismatch: this is a Symfony bundle, not a Laravel package. If the actual stack is Laravel, this is the wrong dependency. Use Laravel Reverb (first-party, free, Redis-backed, integrates with Laravel broadcasting) or a small service class over the Centrifugo HTTP API with a JWT helper. Laravel's broadcasting abstractions know nothing about Symfony bundles.
  • Look elsewhere if: you only need simple push and already have a queue plus polling, or you require managed infrastructure with SLAs.
  • Look elsewhere if: you need ecosystem validation. 84 stars and 0 dependents means essentially no public production pressure-testing. Treat this as "read the small source and own the risk," not "adopt with confidence."
  • Watch: single maintainer (fre5h), one recent release (2025-11-28). Bus factor and long-term maintenance are the true adoption cost — larger than the integration cost.

How to Pitch It (Stakeholders)

Executives: "Realtime features — live notifications, presence, live dashboards — usually mean either a per-connection SaaS bill (Pusher/Ably) or building and operating websocket infrastructure in-house. Centrifugo is a mature open-source websocket server we can self-host; this bundle is the small Symfony-side adapter that connects our app to it. Cost is a few days of integration plus one small service to operate. It removes per-connection SaaS spend, and because the client contract is just HTTP + JWT, we keep the option to move to a managed host later without a rewrite."

Engineering: "It's a thin DI wrapper over Centrifugo's HTTP API plus JWT connection-token handling — nothing magic, about a day to read. The value is not re-deriving the token format or hand-wiring the client. The risk is real: 84 stars, zero dependents, one maintainer. Recommendation: use it, but hide it behind our own RealtimePublisher interface so swapping to a raw HTTP client — or to Reverb, if we move this surface to Laravel — is a one-file change. If the stack is Laravel today, skip this entirely and start with Reverb."

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator