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
Version | Release | Download |
6.0.0 | 2024-06-24 | swoole-6.0.0.tgz |
5.1.4 | 2024-08-23 | swoole-5.1.4.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 |
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.4 |
- Fix broken build with GCC 14. @remicollet - Fix could not send SSL negotiation packet(Resource temporarily unavailable). @NathanFreeman - Fix the issue where certain critical parameters of `Swoole\Server` are not reset to 0 during process restart. @NathanFreeman - Fix the problem where `Swoole\Http\Request::getMethod()` returns the incorrect request method when `HTTP2` is enabled. @matyhtf - Optimize `Swoole\Http\Response::end()`. Response data larger than 16K will be sent directly through the socket, while data smaller than or equal to 16K will be copied to the buffer first before being sent out via the socket. @NathanFreeman |
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 |