Releases: swoole/swoole-src
Releases · swoole/swoole-src
v5.1.0
✨ New Features
- Support
pdo_pgsql
coroutine hook (@matyhtf) - Support
pdo_odbc
coroutine hook (@matyhtf) - Support
pdo_oci
coroutine hook (@NathanFreeman) - Support
pdo_sqlite
coroutine hook (@NathanFreeman) - Add configuration for PDO connection pools for
pdo_pgsql
,pdo_odbc
,pdo_oci
,pdo_sqlite
(@NathanFreeman)
💪 Performance Improvement
- Improved performance of
Http\Server
, can increase up to60%
in extreme cases (@matyhtf) (@NathanFreeman)
🐛 Bug Fixed
- Fixed the memory leak caused by each request of the
WebSocket coroutine client
(@matyhtf) (@NathanFreeman) - Fixed the issue where graceful shutdown of the
HTTP coroutine server
was not causing the client to exit (@matyhtf) - Fixed the issue where adding the
--enable-thread-context
option during compilation was causingProcess::signal()
to not work (@NathanFreeman) - Fixed the issue where the connection count was being calculated incorrectly when a process exited abnormally in
SWOOLE_BASE
mode (@Yunrunsoft) - Fixed the incorrect signature of the
stream_select()
function (@Yunrunsoft) (@NathanFreeman) - Fixed the case sensitivity issue with the MIME information in files (@hongweipeng)
- Fixed the spelling mistake in
Http2\Request::$usePipelineRead
, which was causing a warning to be thrown in PHP 8.2 environment (@NathanFreeman) - Fixed the memory leak issue in
SWOOLE_BASE
mode (@dongzitai) (@NathanFreeman) - Fixed the memory leak issue caused by setting the expiration time of a cookie in
Http\Response::cookie()
(@NathanFreeman) - Fixed the connection leak issue in
SWOOLE_BASE
mode (@NathanFreeman)
🔑 Kernel
- Fixed the function signature issue of php_url_encode in Swoole under PHP 8.3 (@YepYuYu)
- Fixed the issue with unit testing options (@YepYuYu)
- Optimized and refactored the code (@matyhtf)
- Fix compatibility with PHP 8.3 (@Yunrunsoft) (@matyhtf)
- Unsupported compilation on 32-bit operating systems
🌕🥮🥰 Happy Mid-Autumn Festival!
✨ 新特性
- 增加对
pdo_pgsql
的协程化支持 (@matyhtf) - 增加对
pdo_odbc
的协程化支持 (@matyhtf) - 增加对
pdo_oci
的协程化支持 (@NathanFreeman) - 增加对
pdo_sqlite
的协程化支持 (@NathanFreeman) - 增加
pdo_pgsql
,pdo_odbc
,pdo_oci
,pdo_sqlite
的连接池配置。(@NathanFreeman)
💪 性能提高
- 改进了
Http\Server
的性能,极限情况下可以提升60%
(@matyhtf) (@NathanFreeman)
🐛 Bug 修复
- 修复
WebSocket协程客户端
每次请求造成的内存泄漏 (@matyhtf) (@NathanFreeman) - 修复
http协程服务端
优雅退出导致客户端不退出的问题 (@matyhtf) - 修复编译的时候加入了
--enable-thread-context
选项会导致Process::signal()
不起作用(@NathanFreeman) - 修复
在SWOOLE_BASE模式
下,当进程非正常退出时,连接数统计错误的问题 (@Yunrunsoft) - 修复
stream_select()
函数签名错误 (@Yunrunsoft) (@NathanFreeman) - 修复文件MIME信息大小写敏感错误 (@hongweipeng)
- 修复
Http2\Request::$usePipelineRead
拼写错误导致在PHP8.2的环境下会抛出警告。 (@NathanFreeman) - 修复在
SWOOLE_BASE
模式下的内存泄漏问题 (@dongzitai) (@NathanFreeman) - 修复当
Http\Response::cookie()
设置cookie
的过期时间导致的内存泄漏问题 (@NathanFreeman) - 修复在
SWOOLE_BASE
模式下的连接泄漏问题 (@NathanFreeman)
🔑 内核
- 修复swoole在php8.3下的php_url_encode的函数签名问题 (@YepYuYu)
- 修复单元测试选项问题 (@YepYuYu)
- 优化,重构代码 (@matyhtf)
- 兼容PHP8.3 (@Yunrunsoft) (@matyhtf)
- 不支持32位操作系统上编译
🌕🥮🥰 祝大家中秋节快乐!
v5.0.3
- Added
--with-nghttp2_dir
option, Use the system nghttp2 library - Added unit character supports for byte length or size related options
- Fixed memory leak Server task/pipemessage/finish event callback
- Added
Process\Pool::sendMessage()
- Added support for
max-age
toHttp\Response:cookie()
method - No longer thrown error log when http header conflicts
- No longer thrown error log when the server connection is closed
- Fixed memory leak caused by Server send_yield
v4.8.13
- Fixed parameter compatibility of
Coroutine::printBackTrace()
anddebug_print_backtrace()
- Fixed parsing length is wrong when the websocket server enable http2 and websocket protocols at the same time
- Refactor curl native to support a curl handle with multiple sockets, such as the curl ftp protocol
- Support for configuring http2 default settings
- Improved websocket client, upgrade header contains websocket instead of equal
- Optimized http client, disable keep-alive when server sends connection close
- Optimized http client, prohibit adding the
Accept-Encoding
header without compression library - Improved debug info, set password as sensitive parameter under PHP-8.2
- Fixed memory leak when send_yield occurs in
Server::send()
,Http\Response::end()
,Http\Response::write()
,WebSocket/Server::push()
- Fixed crash when using
Table::getMemorySize()
before add columns - Support HTTP Range Requests
v5.0.2
- Support for configuring http2 default settings
- Support xdebug under 8.1 or higher
- Refactor curl native to support a curl handle with multiple sockets, such as the curl ftp protocol
- Added
$who
parameter toProcess::setPriority/getPriority
- Added
Coroutine\Socket::getBoundCid()
- Adjusted the default value of
Coroutine\Socket::recvLine/recvWithBuffer
$length
parameter to65536
- Refactor cross-coroutine shutdown feature to make memory release safer and solve the crash problem when a fatal error occurs
- Added socket property for
Coroutine\Client
,Coroutine\Http\Client
,Coroutine\Http2\Client
, allow direct operation of socket resources - Support
Http\Server
to send empty file to http2 client - Support graceful restart for
Coroutine\Http\Server
. When server shuting down, the client connection will no longer be forcibly closed, and only stop listening to new requests - Added
pcntl_rfork
pcntl_sigwaitinfo
to list of unsafe function, will be closed when coroutine container starts - Refactor Server process manager with base mode, the behavior of shutdown and reload will be consistent with base or process mode
The
version-5.0.2
has no backwards incompatible changes
v5.0.1
- Supported
PHP-8.2
- Improved coroutine exception handling, compatible with
ext-soap
- Fixed parameter compatibility of
Coroutine::printBackTrace()
anddebug_print_backtrace()
- Added pgsql coroutine client LOB supports
- Fixed
Event::add()
support for sockets resources - Fixed compile error when no zlib
- Improved websocket client, upgrade header contains websocket instead of equal
- Optimized http client, disable
keep-alive
when server sends connection close - Optimized http client, prohibit adding the
Accept-Encoding
header without compression library - Improved debug info, set password as sensitive parameter under PHP-8.2
- Fixed crash when unpack server task parsed to an unexpected string
- Enhanced
Server::taskWaitMulti()
, no blocking in coroutine environment - Fixed the problem that adding a timer less than 1ms is forced to 0
- Fixed crash when using
table::getMemorySize()
before add columns - Optimized log function, no longer print screen when writing to the log file fails
- Modify the
expire
parameter name ofHttp\Response::setCookie()
toexpires
, fix #4780
v4.8.12
- Supports
PHP-8.2
- Enhanced
Event::add()
support for sockets resources - Fixed incorrect error message when wrong multipart body is received
- Improved
Http\Client::sendfile()
, support large files over 4G - Improved
Server::taskWaitMulti()
, support coroutine environment - Fixed incorrect error message when add timer less than 1ms
- Fixed deadlock caused by writing log when disk is full
v5.0.0
Minimum PHP version requirement is
8.0
Added
- Added
max_concurrency
option for Server - Added
max_retries
option for Coroutine\Http\Client - Added
name_resolver
global option - Added
upload_max_filesize
option for Server - Added
Coroutine::getExecuteTime()
- Added SWOOLE_DISPATCH_CONCURRENT_LB dispatch_mode for Server
Changed
- Enhanced type system, added types for parameters and return values of all functions
- Optimized error handling, all constructors will throw exceptions when fail
- Adjusted the default mode of Server, the default is SWOOLE_BASE mode
- Migrate pgsql coroutine client to core
- Contains all bugfixes from the 4.8.x branch
Removed
- Removed PSR-0 style class names
- Removed the automatic addition of
Event::wait()
in shutdown function - Removed
Server::tick/after/clearTimer/defer
aliases - Removed
--enable-http2
/--enable-swoole-json
, adjusted to be enable by default
Deprecated
- Deprecated
Coroutine\Redis
andCoroutine\MySQL