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

Webman Laravel Package

workerman/webman

Webman is a high-performance PHP framework built on Workerman. It runs as a persistent process, delivering fast HTTP, WebSocket, TCP, and UDP services with low overhead. It offers Laravel-style components and an active ecosystem for building reliable, scalable applications.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Verdict up front: this is not a Laravel package. workerman/webman is a standalone, Workerman-based PHP application framework — a runtime and framework replacement, not a library you composer require into an existing Laravel app. The only credible way a Laravel shop leverages it is as a second, narrowly-scoped service runtime alongside Laravel, or by choosing it over Laravel Octane/RoadRunner/FrankenPHP for specific workloads. Evaluate it as a platform bet, not as a dependency.

Architecture fit

  • Webman runs as resident PHP processes on an event loop (Workerman), with no PHP-FPM, no per-request bootstrap, and no shared-nothing request lifecycle. That is architecturally orthogonal to Laravel's request/kernel model. Any code that relies on per-request globals ($_SESSION, superglobals, static caches, app() rebinding per request) does not transfer.
  • Strong fit for: WebSockets/long-lived connections, SSE, high-fanout internal RPC, webhook ingestion, and lightweight JSON APIs where per-request framework overhead dominates. Weak fit for: anything needing Laravel's HTTP kernel, Blade, Artisan-driven lifecycle, or packages that assume Illuminate\Contracts bound in a request scope.
  • The 2.7k stars and MIT license are fine; the 0 Packagist dependents is the signal that matters. It indicates little ecosystem-level embedding — expect to write your own glue for auth, sessions, validation, ORM lifecycle, and observability rather than composing existing packages.

Integration feasibility

  • Feasible, but only as strangler-pattern offload: nginx/ALB path- or host-routing sends selected endpoints to a webman service; Laravel remains system of record; state shared via MySQL/Redis/queue.
  • Auth must be token-based across the boundary — Laravel (Sanctum/Passport or JWT) issues, webman verifies. Do not attempt to share session drivers or cookie-based state.
  • Code sharing is limited to pure-PHP, framework-agnostic libraries. illuminate/database works standalone, but Eloquent models written against Laravel conventions (events, global scopes, observers wired via service providers) will need rework. Budget for this explicitly.

Technical risk

  • Single-maintainer / bus-factor risk (walkor) — high for a component that owns request handling. No commercial support tier, no vendor SLA. Docs are Chinese-first with partial English; that is a real onboarding tax, not a footnote.
  • State leakage and memory growth are the dominant failure class in resident-process PHP and are the top source of production incidents in teams new to it.
  • Metadata anomalies: 0 dependents alongside a 2026-02-24 release date is internally inconsistent; verify release history, CVE responsiveness, and commit cadence directly on the repo before scoring it in a build-vs-buy matrix.
  • Opportunity cost is the real risk: Octane/Swoole or FrankenPHP deliver much of the throughput benefit while keeping the Laravel programming model. Adopting webman means paying for a second framework, second deploy pipeline, and second on-call runbook.

Key questions for the maintainer/team

  1. What measured p95/p99 and cost-per-request improvement do we expect, versus Laravel Octane on the same hardware? Do we have a benchmark we trust?
  2. Which specific endpoints justify a second runtime — and are they currently in our top-5 latency or cost drivers?
  3. Who owns the webman service on-call, and what is the rollback plan to Laravel-only?
  4. Are we prepared to reimplement auth, sessions, validation, rate limiting, and tracing outside Laravel?
  5. Does our PHP version, extension set (event/swoole), and container base image align with Workerman's requirements — and do we need Windows/dev-parity support (which is restricted)?
  6. What is our exit cost if the maintainer steps away — is the service small enough to rewrite in days?

Integration Approach

Stack fit

  • Keep Laravel as the control plane (auth, billing, admin, writes-of-record) and treat webman as a data-plane service for a bounded set of high-concurrency, low-business-logic endpoints.
  • Hard rule: no shared application code across the boundary except DTOs/contracts and pure utility libraries. Enforce with separate composer.json per service (monorepo with independent dependency graphs, or separate repos).
  • Align PHP minor versions and the event/swoole extension set across both runtimes so CI images are shared.

Migration path

  1. Contract-first: define the offloaded endpoints in OpenAPI; generate/verify request-response shapes on both sides.
  2. Build the boundary: token issuance in Laravel, token verification middleware in webman; shared Redis for cache/rate-limit counters; queue (Redis or Kafka) for async side effects back into Laravel.
  3. Shadow or canary the webman service behind routing rules at low traffic percentage before cutover.
  4. Decommission or promote: either expand scope deliberately or retire the service after the experiment.

Compatibility

  • Do not attempt to run Laravel inside webman (or vice versa via an adapter). Every such adapter we've seen becomes an unmaintained fork of the HTTP kernel.
  • Verify that every chosen third-party package is framework-agnostic. Prefer PSR-7/PSR-15/PSR-18 interfaces at the boundary so a future runtime swap (FrankenPHP, RoadRunner) is cheap.
  • Session, CSRF, and cookie semantics do not carry over — plan for stateless, token-based interaction from day one.

Sequencing (suggested, ~1 quarter)

  • Weeks 1–2: benchmark spike — same endpoint on Laravel, Octane, and webman; measure p99 and cost.
  • Weeks 3–5: one non-critical, high-throughput service (webhook receiver or WebSocket notifier).
  • Weeks 6–9: observability parity (structured logs, OpenTelemetry traces, per-process memory dashboards) and load test.
  • Week 10+: gate review — expand only if the benchmark delta survives contact with production.

Operational Impact

Maintenance

  • Two dependency trees, two upgrade cadences, two security-patch streams. The webman service's dependencies will drift from Laravel's; budget recurring engineering time for that drift rather than treating it as one-off.
  • Resident processes mean no per-request teardown: static properties, container singletons, and connection handles persist. Establish a code-review checklist banning mutable statics and unbounded in-process caches.

Support

  • Community-only support (GitHub/Gitee, chat groups), Chinese-language docs bias, no vendor escalation path. Internal expertise must be at least two people deep before this goes to production — otherwise you have created a key-person risk on top of the upstream key-person risk.

Scaling

  • Scale by worker count per container, bounded by CPU; CPU-bound handlers block the event loop and cause latency cliffs across all concurrent requests on that worker. Any nontrivial business logic must be pushed off-loop or to a queue.
  • DB connection math changes materially: connections ≈ workers × pool size. Naive scaling will exhaust MySQL max_connections long before CPU saturates.
  • Horizontal scaling is clean (stateless workers), but only if state is genuinely externalized.

Failure modes to instrument for

  • Memory growth → OOM kill loop (most common; alert on per-worker RSS trend, not just container memory).
  • Event-loop stall (one slow query or blocking sleep/file_get_contents degrades every in-flight request on that worker) — alert on event-loop lag.
  • State bleed between requests — hardest to detect; surfaces as sporadic, non-reproducible wrong-data bugs. Mitigate with per-request context resets and integration tests that issue sequential requests on one worker.
  • Graceful shutdown/drain: reloads must drain in-flight requests and WebSocket connections; a naive kill drops live sockets.
  • Silent plugin abandonment — pin versions and vendor critical plugins.
  • Boundary failure: token verification or queue outage splits the two systems; define degraded behavior in advance (fail closed for writes, fail open for reads).

Ramp-up

  • A mid-level PHP developer reaches productivity in 2–4 weeks, but the real cost is operational literacy: deploy signals, drain semantics, memory profiling, and event-loop debugging differ enough from FPM that existing runbooks are largely void. Rewrite the on-call playbook before the first production cutover, and rehearse a rollback to Laravel-only at least once.

Recommendation: proceed only as a time-boxed, benchmark-gated spike against Laravel Octane/FrankenPHP, scoped to one high-concurrency service. Do not adopt as a general web framework, and do not treat it as a Laravel integration — the composite score (~47) and zero dependents argue for a narrow, reversible bet rather than a platform migration.

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.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
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