Swoole now runs on Windows. The Swoole team added Windows support in Swoole 6.3.0 RC1, which just shipped as a release candidate. Until now, Swoole's install docs have listed Linux, macOS, Cygwin and WSL.

Swoole is a PHP extension for coroutines, async I/O and long-running servers. It's also what a lot of other projects measure themselves against, including Bootgly in its benchmarks.

What's New in 6.3

Besides Windows, the release candidate adds:

  • New Swoole\Table methods: add() inserts only when a key doesn't exist, update() changes only when it does, and cmpset(), cmpdel() and getdel() handle compare-and-swap, compare-and-delete and get-and-delete.
  • An HTTP/2 multiplexing client: Swoole\Coroutine\Http2\MultiplexClient shares one HTTP/2 connection across requests from several coroutines.
  • PHP 8.4 PDO subclasses: Pdo\Sqlite, Pdo\Mysql, Pdo\Pgsql, Pdo\Firebird and Pdo\Odbc now work with Swoole.
  • Redis ACL auth: Swoole\Database\RedisConfig::withAuth() accepts a [username, password] array.
  • ARM64 BTI support and a new wait and wakeup mechanism for macOS and BSD.

The release also fixes an HTTP/2 "bomb" remote denial-of-service vulnerability, plus a long list of memory leaks and crashes, many of them in the SSH2 and SFTP code.

Before You Try It

The team says 6.3.0 RC1 is for test environments only and shouldn't run in production. It also removes the stdext feature, so check for that if you use it. The release notes don't cover Windows setup, so watch the repo for install steps.

For every change and fix, see the full release notes on GitHub.