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 mysql client
- coroutine redis client
- coroutine read/write file system
- coroutine dns lookup
- support IPv4/IPv6/UnixSocket/TCP/UDP
- support SSL/TLS encrypted transmission
License: Apache2.0
Version | Release | Download |
6.0.0 | 2024-06-24 | swoole-6.0.0.tgz |
5.1.3 | 2024-06-06 | swoole-5.1.3.tgz |
5.1.2 | 2024-05-10 | swoole-5.1.2.tgz |
5.1.1 | 2023-11-26 | swoole-5.1.1.tgz |
5.1.0 | 2023-09-29 | swoole-5.1.0.tgz |
Version | Message |
6.0.0 |
- 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. |
5.1.3 |
- Fix the problem of being unable to install through pecl. - Fix the issue of Swoole\Coroutine\FastCGI\Client client being unable to set keepalive. - Fix the issue of process continuously restarting due to error thrown when request parameters exceed max_input_vars. - Fix the unknown issue caused by using Swoole\Event::wait() in a coroutine. - Fix the issue of proc_open not supporting pty when used in a coroutine. - Fix the segmentation fault issue in pdo_sqlite on PHP 8.3. - Fix the unnecessary warning when compiling Swoole. - Fix the error thrown when calling zend_fetch_resource2_ex on closed STDOUT/STDERR. - Fix the invalid set_tcp_nodelay configuration. - Fix the occasional unreachable branch issue triggered during file uploads. - Fix the issue causing PHP core to throw errors when dispatch_func is set. - Fix the obsolete warning of AC_PROG_CC_C99 in autoconf >= 2.70 version. - Remove unnecessary checks for socket structs. - Upgrade the Swoole library. - Add support for http status code 451 in Swoole\Http\Response. - Synchronize file operation code across different versions of PHP. - Synchronize PDO operation code across different versions of PHP. - Optimize the code for Socket::ssl_recv() function. - Optimized config.m4 by allowing some configurations to set dependency library locations using pkg-config. - Optimize the issue with using dynamic arrays when parsing request headers. |
5.1.2 |
- Added support for embed sapi @matyhtf - Fixed compatibility with PHP 8.3 ZEND_CHECK_STACK_LIMIT @Yurunsoft - Fixed no Content-Range response header when the range request returns all the contents of the file @Yurunsoft - Optimized HTTP server performance @NathanFreeman - Fixed truncated cookie @stnguyen90 - Fixed native-curl crash on PHP 8.3 @NathanFreeman - Added CLOSE_SERVICE_RESTART, CLOSE_TRY_AGAIN_LATER, CLOSE_BAD_GATEWAY as valid close reasons for websocket @cjavad - Fixed invalid errno after Server::Manager::wait() @JacobBrownAustin - Fixed HTTP2 Typo @leocavalcante |
5.1.1 |
- Fixed memory leak issue in HTTP coroutine client - Fixed the issue of can not hook pdo_odbc - Fixed the error in executing socket_import_stream() - Fixed the issue with Context::parse_multipart_data() unable to handle empty request body - Fixed the issue with PostgreSQL coroutine client where the parameters are not working - Fixed the bug where curl crashes during destruction - Fixed the compatibility issue between Swoole 5.x and the latest version of xdebug - Fixed the problem of class not found error caused by coroutine switching during the process of class autoloading - Fixed the issue of not being able to compile Swoole on OpenBSD |
5.1.0 |
- Support pdo_pgsql coroutine hook - Support pdo_odbc coroutine hook - Support pdo_oci coroutine hook - Support pdo_sqlite coroutine hook - Add configuration for PDO connection pools for pdo_pgsql, pdo_odbc, pdo_oci, pdo_sqlite - Improved performance of Http\Server, can increase up to 60% in extreme cases - Fixed the memory leak caused by each request of the WebSocket coroutine client - Fixed the issue where graceful shutdown of the HTTP coroutine server was not causing the client to exit - Fixed the issue where adding the --enable-thread-context option during compilation was causing Process::signal() to not work - Fixed the issue where the connection count was being calculated incorrectly when a process exited abnormally in SWOOLE_BASE mode - Fixed the incorrect signature of the stream_select() function - Fixed the case sensitivity issue with the MIME information in files - Fixed the spelling mistake in Http2\Request::$usePipelineRead, which was causing a warning to be thrown in PHP 8.2 environment - Fixed the memory leak issue in SWOOLE_BASE mode - Fixed the memory leak issue caused by setting the expiration time of a cookie in Http\Response::cookie() - Fixed the connection leak issue in SWOOLE_BASE mode - Fixed the function signature issue of php_url_encode in Swoole under PHP 8.3 - Fixed the issue with unit testing options - Optimized and refactored the code - Fix compatibility with PHP 8.3 |