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

Ws Symfony Bundle Laravel Package

kraken-collective/ws-symfony-bundle

Symfony bundle that integrates WebSocket support into Symfony applications, providing configuration and service wiring for real-time features. Simplifies adding WebSocket endpoints and managing connections alongside your existing Symfony services.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. This is a Symfony bundle, not a Laravel package. Laravel consumes individual Symfony components (HttpFoundation, Console, Routing, etc.) but deliberately does not implement Symfony's bundle/extension system, so there is no loader that would register this bundle's Extension, CompilerPass, or service definitions into the Laravel container. Wiring it up would mean manually reconstructing the bundle's service graph inside a ServiceProvider and replacing Symfony-specific abstractions (EventDispatcher contracts, bundle config trees) with Laravel equivalents. The package's purpose — providing a WebSocket server integration — is architecturally orthogonal to how Laravel applications typically do realtime (broadcasting over Pusher/Soketi/Reverb, or a dedicated Ratchet/ReactPHP daemon), so there is no natural seam to graft it onto.

Integration feasibility. Low. The realistic path is not integration but reimplementation: read the bundle's ~handful of service classes, extract whatever protocol/session logic is useful, and rewrite it as a Laravel service provider plus an artisan command running a long-lived worker. That is a small amount of code but still a from-scratch build with no upstream support, which raises the question of why the dependency is being considered at all.

Technical risk. High and concentrated:

  • Abandonment. Last release 2016-11-26; zero dependents; 12 stars. No security patches, no PHP 8 compatibility work, no maintenance signal of any kind. The score of 0.06 reflects this accurately.
  • Runtime incompatibility. The package predates PHP 7.1+ type strictness and almost certainly the ReactPHP/Ratchet versions it pins. Composer resolution against a modern Laravel (10/11/12) on PHP 8.2+ is likely to fail outright or force unacceptable downgrades of shared transitive dependencies.
  • Hidden coupling. Symfony bundles often assume framework-level services (parameter bags, kernel events, tagged services) that must be stubbed. Each stub is a latent failure mode the team owns permanently.
  • Security surface. A WebSocket server is an internet-facing, stateful, long-lived process. Shipping one built on unmaintained 2016-era code is a genuine security-posture problem, not a hygiene nit.

Key questions for the owning team:

  1. What capability do we actually need — server-push notifications, presence, bidirectional RPC? Each maps to a different Laravel-native answer.
  2. Has anyone verified composer require resolves on our current PHP/Laravel baseline? (Expect it not to.)
  3. If we fork it, who owns the fork, and what is the review/security-patch commitment?
  4. Why this package over Laravel Reverb, Soketi, or a Pusher-compatible managed service — is there a specific feature or protocol it provides that those do not?
  5. Is the realtime requirement on the critical path, or can it be deferred behind an abstraction?

Integration Approach

Stack fit. Poor. A Laravel codebase gains nothing from the Symfony bundle format; the overlap is limited to shared low-level components. If the underlying transport is Ratchet or ReactPHP, those libraries can be consumed directly from a Laravel ServiceProvider with a fraction of the friction — and with current, maintained versions.

Migration path. Do not attempt to install and adapt. Instead:

  1. Treat the repository as reference source only — read it for its connection/session lifecycle and message-routing patterns.
  2. Choose a maintained transport: Laravel Reverb (first-party, Pusher protocol), Soketi (self-hosted, Pusher protocol), or a managed Pusher/Ably account.
  3. If a custom daemon is genuinely required, implement it as an artisan command over current Ratchet or ReactPHP, registered through a normal service provider and supervised by the existing process manager.
  4. If the legacy binary protocol must be preserved for existing clients, isolate it behind a thin adapter so the transport is swappable.

Compatibility. Assume incompatible until proven otherwise. Verify: PHP constraint, Laravel framework version, symfony/* component major versions, and whether any dependency is itself abandoned. A single abandoned transitive package contaminates the audit. Budget a timeboxed spike (half a day) purely to test Composer resolution; expect a negative result and plan the fallback in parallel.

Sequencing.

  1. Spike: attempt resolution on the current baseline; confirm/deny viability.
  2. Requirement decomposition: what realtime behavior is actually needed, and by when.
  3. Alternative selection and proof-of-concept (Reverb or Soketi) against the same requirement.
  4. Only if the legacy protocol is a hard constraint, build the adapter, with a written deprecation plan for the legacy clients.
  5. Retire any exploratory fork branch; do not let it linger.

Operational Impact

Maintenance. Effectively total. Adopting this package means forking and owning it: dependency upgrades, PHP version bumps, security review, and framework-version churn all land on the team with no upstream to lean on. Price that as a permanent headcount tax against a one-off integration cost for a maintained alternative.

Support. None. No maintainer activity in roughly a decade, no issue triage, no CVE response channel, no community to escalate to. Incidents become internal research projects.

Scaling. Inherent to the WebSocket layer rather than this package specifically, but the package gives no help: a single-process server needs sticky sessions or a shared pub/sub backplane (Redis) for horizontal scale, plus a graceful-shutdown and reconnect story during deploys. Expect to build all of that. Modern options (Reverb, Soketi) ship with these concerns addressed and documented.

Failure modes.

  • Composer resolution failure at install time (most likely, and the cheapest to discover).
  • Runtime fatals on PHP 8 due to removed/deprecated behavior.
  • Silent message loss or connection leaks under load, with no upstream fixes forthcoming.
  • Memory growth in the long-lived worker with no supported tuning guidance.
  • Security exposure from an unpatched, internet-facing server process.
  • Bus-factor: the one engineer who understood the fork leaves.

Ramp-up. Low for the API surface (small package), high for the operational reality — the team inherits an unfamiliar, undocumented, decade-old Symfony-flavored codebase plus full ownership of a stateful daemon. Compare with a Laravel-native option where onboarding is measured in hours and documentation is current.

Recommendation. Treat this package as a non-candidate for adoption. The low score and 2016 release date are consistent with what the code inspection would show. Use it, at most, as a design reference, and satisfy the realtime requirement with Laravel Reverb, Soketi, or a managed Pusher-compatible service. If the team believes a unique capability justifies the fork, require a named owner, a written maintenance commitment, and a security review before the dependency enters the main branch.

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.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
cgv/localized-resource