swoole 6.0.0

Event-driven asynchronous and concurrent networking engine with high performance for PHP.


Event-driven asynchronous and concurrent networking engine with high performance for PHP.
- event-driven
- coroutine
- asynchronous non-blocking
- multi-thread reactor
- multi-process worker
- multi-protocol
- millisecond timer
- built-in tcp/http/websocket/http2 server
- coroutine tcp/http/websocket client
- coroutine read/write file system
- coroutine dns lookup
- support IPv4/IPv6/UnixSocket/TCP/UDP
- support SSL/TLS encrypted transmission

License: Apache2.0

Changes

- Swoole supports multi-threading mode. When PHP is in ZTS mode and Swoole is compiled with --enable-swoole-thread, the multi-threading mode can be utilized.
- Added a new thread management class Swoole\Thread.
- Introduced thread lock Swoole\Thread\Lock.
- Added thread atomic counter Swoole\Thread\Atomic, Swoole\Thread\Atomic\Long.
- Added safe concurrent containers Swoole\Thread\Map, Swoole\Thread\ArrayList, Swoole\Thread\Queue.
- File asynchronous operations support iouring as the underlying engine. Installing liburing and compiling Swoole with --enable-iouring enables asynchronous operations for functions like file_get_contents, file_put_contents, fopen, fclose, fread, fwrite, mkdir, unlink, fsync, fdatasync, rename, fstat, lstat, filesize through iouring.
- Upgraded Boost Context to version 1.84. Now, Loongson CPUs can also supports coroutines.
- Fixed the issue where installation via pecl was not possible.
- Fixed the bug where setting keepalive was not possible for Swoole\Coroutine\FastCGI\Client.
- Fixed the issue where exceeding the max_input_vars would throw an error, causing the process to restart repeatedly.
- Fixed unknown issues caused by using Swoole\Event::wait() within a coroutine.
- Fixed the problem where proc_open does not support pty in coroutine mode.
- Fixed segmentation fault issues with pdo_sqlite on PHP 8.3.
- Fixed unnecessary warnings during the compilation of Swoole.
- Fixed the error thrown by zend_fetch_resource2_ex when STDOUT/STDERR are already closed.
- Fixed ineffective set_tcp_nodelay configuration.
- Fixed the occasional unreachable branch issue during file upload.
- Fixed the problem where setting dispatch_func would cause PHP's internals to throw errors.
- Fixed the deprecation of AC_PROG_CC_C99 in autoconf >= 2.70.
- Capture exceptions when thread creation fails.
- Fixed the undefined problem with _tsrm_ls_cache.
- Fixed the fatal compile error with GCC 14.
- Removed unnecessary checks for socket structs.
- Upgraded Swoole Library.
- Added support for status code 451 in Swoole\Http\Response.
- Synchronized file operation code across different PHP versions.
- Synchronized pdo operation code across different PHP versions.
- Optimized the code for Socket::ssl_recv().
- Improved config.m4; some configurations can now set library locations via pkg-config.
- Optimized the use of dynamic arrays during request header parsing.
- Optimized file descriptor fd lifecycle issues in multi-threading mode.
- Optimized some fundamental coroutine logic.
- No longer supports PHP 8.0.
- No longer supports Swoole\Coroutine\MySQL coroutine client.
- No longer supports Swoole\Coroutine\Redis coroutine client.
- No longer supports Swoole\Coroutine\PostgreSQL coroutine client.
- Swoole-v6.0.0-alpha is a test version and cannot be used in any production environment; it is for testing purposes only.