whatisgithub

What is workerman?

walkor/workerman — explained in plain English

Analysis updated 2026-06-24

11,540PHPAudience · developerComplexity · 3/5Setup · moderate

In one sentence

A PHP framework for building fast network servers that can handle thousands of simultaneous connections, think chat servers, WebSocket apps, or real-time APIs, all in PHP.

Mindmap

mindmap
  root((workerman))
    Server types
      HTTP server
      WebSocket server
      Raw TCP
    Key features
      Event loop
      Multi-process
      Coroutines
      SSL support
    Advanced
      Barrier utility
      Parallel tasks
      Docker friendly
    Setup
      Composer install
      Linux macOS BSD
      POSIX PCNTL needed
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Build a real-time chat server in PHP that handles thousands of users connected simultaneously via WebSocket.

USE CASE 2

Create a high-performance HTTP API server in PHP that stays running as a long-lived process instead of restarting per request.

USE CASE 3

Run multiple parallel database or API calls in PHP using coroutines and collect all results before sending a response.

What is it built with?

PHPComposerSwooleSwowWebSocketSSL/TLS

How does it compare?

walkor/workermantymondesigns/jwt-authpestphp/pest
Stars11,54011,48111,470
LanguagePHPPHPPHP
Setup difficultymoderatemoderateeasy
Complexity3/53/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires the POSIX and PCNTL PHP extensions, coroutine support additionally needs Swoole or Swow extensions installed.

License terms were not described in the explanation.

So what is it?

Workerman is a PHP framework for building network servers that can handle a large number of simultaneous connections. Most PHP applications run through a web server like Apache or Nginx, which spins up a new process for each incoming request. Workerman takes a different approach: it runs as a long-lived process that listens on a port and handles connections through an event loop, similar to how Node.js works. This allows it to maintain thousands of open connections at once without the overhead of starting a new process for each one. The framework supports HTTP servers, WebSocket servers (used for real-time communication like chat or live updates), and raw TCP connections. You write a PHP class that defines what happens when a connection opens, when data arrives, and when a connection closes. Workerman calls these functions at the right time. Adding SSL encryption requires passing a certificate path and setting a transport flag. Setting up a simple WebSocket server takes about 20 lines of code. More advanced features include coroutines, which let PHP wait for slow operations like network calls or database queries without blocking other connections from being served. Coroutines require either the Swoole or Swow PHP extension, or a compatible event loop library. The framework also provides Barrier and Parallel utilities for running multiple tasks at the same time and waiting for all of them to finish before sending a response. Workerman can spawn multiple worker processes to spread load across CPU cores, configured with a single property on the worker object. It is installed via Composer, PHP's package manager, and runs on Linux, macOS, and BSD systems. It requires the POSIX and PCNTL PHP extensions. Full documentation is available at manual.workerman.net.

Copy-paste prompts

Prompt 1
Using Workerman, write a PHP WebSocket server that broadcasts a message to all connected clients whenever any client sends a message.
Prompt 2
Show me a Workerman HTTP server that handles concurrent API requests and uses coroutines to fetch data from two external URLs in parallel before responding.
Prompt 3
Set up a Workerman server with SSL enabled using my certificate files, listening on port 8443 for secure WebSocket connections.
Prompt 4
Configure a Workerman worker to spawn 4 child processes to spread load across CPU cores, then test it handles 1000 simultaneous connections.

Frequently asked questions

What is workerman?

A PHP framework for building fast network servers that can handle thousands of simultaneous connections, think chat servers, WebSocket apps, or real-time APIs, all in PHP.

What language is workerman written in?

Mainly PHP. The stack also includes PHP, Composer, Swoole.

What license does workerman use?

License terms were not described in the explanation.

How hard is workerman to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is workerman for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.