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

Wsclient Bundle Laravel Package

m6web/wsclient-bundle

A Symfony bundle that provides a WebSocket client service, letting your application connect to and send messages to WebSocket servers. Includes configurable connections, event dispatching, and logging integration for real-time features.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Real-time feature feasibility (push consumption in PHP): Informs the roadmap question "can our Symfony backend subscribe to an external WebSocket feed?" — e.g. consuming live pricing, trading, chat, or notification streams from a third-party provider rather than polling. This bundle is a reference point for that capability, not a shipping choice.
  • Build vs. buy vs. borrow for real-time plumbing: Helps frame the decision between (a) writing an in-house WebSocket client layer, (b) adopting a maintained library (Ratchet/Pawl, ReactPHP, Swoole/RoadRunner), or (c) buying a managed relay (Mercure, Pusher, Ably). The existence of a small, archived bundle like this is evidence that the "borrow" option in this niche has a thin, stale supply.
  • Architecture scope: Supports the call on whether PHP should be a WebSocket client at all, versus delegating stream consumption to a sidecar/worker service in a language with mature async I/O, and keeping Symfony as the consumer of an internal queue or HTTP webhook.
  • Interface stability as an adoption gate: The latest patch (v5.4.1) exists only to restore methods on ResponseAdapterInterface that the previous release removed — i.e. a backwards-incompatible change shipped without a major version bump, then walked back. For roadmap purposes this is a concrete data point that this package cannot be relied on for stable public contracts, which is the minimum bar for anything we'd wrap or extend.
  • Legacy/portfolio audit: If this appears in a dependency tree, it triggers a maintenance-risk and upgrade-path decision (Symfony 2/3-era code, 2015-era release cadence, no security response). The v5.4.1 churn adds an "unknown-blast-radius" question to any upgrade: which interfaces moved between which point releases.
  • Vendor/integration diligence: Useful as a checklist item when a partner's SDK docs reference this bundle — a signal that the integration guidance is dated and the partner's PHP story may need re-validation.
  • Not a differentiator: Low stars (1), zero dependents, and archived status mean this cannot be positioned as a competitive or accelerated-time-to-market lever in any roadmap narrative.

When to Consider This Package

Adopt only under narrow, explicitly time-boxed conditions:

  • Reference reading, not dependency: You want a compact example of how a Symfony bundle wires a WebSocket client into the service container (DI configuration, connection lifecycle, event hooks) before specifying your own implementation.
  • Frozen legacy system: An existing service already depends on it, is in maintenance-only mode, and rewriting the transport layer is out of scope for the current quarter. Even then, isolate it, pin the exact version, and plan an exit.
  • Prototype with zero production exposure: A throwaway spike to prove a data feed is reachable, with a hard rule that it never reaches a released artifact.

Look elsewhere when any of the following is true — which, for most teams, is all of them:

  • You need production support. The package is archived, has 1 star and 0 dependents, and its releases stopped in the Symfony 2/3 era. There is no maintainer, no CVE response path, and no compatibility work for modern PHP or Symfony (6/7). That is a standing security and upgrade liability.
  • You need stable public contracts. The v5.4.1 patch is a retrocompatibility repair for ResponseAdapterInterface methods dropped in the preceding release. Interfaces are being changed across patch versions, so anything you build against them — adapters, decorators, test doubles — can break on a routine composer update.
  • Your runtime is current. Modern PHP async options (Pawl, ReactPHP, AMPHP, Swoole, RoadRunner, FrankenPHP worker mode) or a managed service (Mercure, Pusher, Ably, Kafka/Redis streams) deliver the same outcome with active maintenance.
  • You need reconnection/backoff, auth refresh, heartbeats, or observability. Assume none of this is production-grade or documented to current standards; budget to build it.
  • Dependency policy forbids abandoned code. Archived + zero dependents fails virtually any sane supply-chain gate, and a BC-break-then-revert in a patch release is exactly the pattern those gates are meant to catch.
  • You are choosing a strategic real-time platform. Pick a direction with a maintainer and a roadmap; this is not a platform decision you can build on.

How to Pitch It (Stakeholders)

One line: A 2015-era Symfony bundle for consuming WebSocket feeds from PHP — useful as a design reference, disqualified as a dependency.

For executives: We re-evaluated m6web/wsclient-bundle following its v5.4.1 release. It is MIT-licensed and conceptually on-target, but it is archived, essentially unmaintained, has one star and zero downstream dependents, and has no compatibility work for modern Symfony. The new release does not change that verdict — it is a bug-fix that restores methods on ResponseAdapterInterface that the previous release removed, meaning the project is still shipping backwards-incompatible interface changes in point releases. Recommendation: do not adopt. If real-time ingestion is on the roadmap, we should choose a maintained library or a managed relay and treat the bundle only as a pattern reference. Cost of the decision is near zero now; cost of reversing an adoption later is a rewrite plus a security review.

For engineering: Read it for the bundle/DI structure if helpful; do not add it to composer.json. Treat the v5.4.1 notes as a warning rather than reassurance: ResponseAdapterInterface gained and lost public methods between patch versions, so any wrapper, adapter, or mock written against it is a recurring upgrade hazard. Target Pawl/ReactPHP or a managed service for the client side, and keep the transport behind an interface you own so the choice stays reversible. If anyone finds it already in a tree, pin the version, flag it as tech debt with an owner and a replacement date, and check whether local code implements or extends ResponseAdapterInterface — those call sites are the ones most likely to break on the next bump.

Decision requested: Confirm real-time ingestion is (or is not) on the roadmap, and if it is, approve a short spike comparing a maintained PHP client against a managed relay — with this package explicitly excluded from both options.

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.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource