Skip to content

Releases: swoole/swoole-src

v5.1.1

26 Nov 14:42
b902f1b
Compare
Choose a tag to compare

馃悰 Bug Fixed

Fixed memory leak issue in HTTP coroutine client (@NathanFreeman)
Fixed the issue of can not hook pdo_odbc (@NathanFreeman)
Fixed the error in executing socket_import_stream() (@Yurunsoft)
Fixed the issue with Context::parse_multipart_data() unable to handle empty request body (@NathanFreeman)
Fixed the issue with PostgreSQL coroutine client where the parameters are not working (@Yurunsoft)
Fixed the bug where curl crashes during destruction (@matyhtf)
Fixed the compatibility issue between Swoole 5.x and the latest version of xdebug (@NathanFreeman)
Fixed the problem of class not found error caused by coroutine switching during the process of class autoloading (@Yurunsoft)
Fixed the issue of not being able to compile Swoole on OpenBSD (@ChihHao-Su) (@twose)

馃悰 Bug 淇

淇http鍗忕▼瀹㈡埛绔鍐呭瓨娉勬紡闂 (@NathanFreeman)
淇pdo_odbc鏃犳硶鍗忕▼鍖栫殑闂 (@NathanFreeman)
淇socket_import_stream()鎵ц閿欒鐨勯棶棰 (@Yurunsoft)
淇Context::parse_multipart_data()鏃犳硶澶勭悊绌鸿姹備綋鐨勯棶棰 (@NathanFreeman)
淇PostgreSQL鍗忕▼瀹㈡埛绔鍙傛暟涓嶈捣浣滅敤鐨勯棶棰 (@Yurunsoft)
淇curl鍦ㄦ瀽鏋勬椂浼氬穿婧冪殑bug (@matyhtf)
淇Swoole5.x涓庢柊鐗堢殑xdebug涓嶅吋瀹归棶棰 (@NathanFreeman)
淇绫鑷姩鍔犺浇鐨勮繃绋嬩腑鍙戠敓鍗忕▼鍒囨崲瀵艰嚧鎻愮ず绫讳笉瀛樺湪鐨勯棶棰 (@Yurunsoft)
淇鏃犳硶鍦OpenBSD缂栬瘧swoole鐨勯棶棰 (@ChihHao-Su) (@twose)

v5.1.0

29 Sep 06:33
b72d22a
Compare
Choose a tag to compare

鉁 New Features

馃挭 Performance Improvement

馃悰 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 causing Process::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_pgsqlpdo_odbcpdo_ocipdo_sqlite鐨勮繛鎺ユ睜閰嶇疆銆(@NathanFreeman)

馃挭 鎬ц兘鎻愰珮

馃悰 Bug 淇

  • 淇WebSocket鍗忕▼瀹㈡埛绔姣忔璇锋眰閫犳垚鐨勫唴瀛樻硠婕 (@matyhtf) (@NathanFreeman)
  • 淇http鍗忕▼鏈嶅姟绔浼橀泤閫鍑哄鑷村鎴风涓嶉鍑虹殑闂 (@matyhtf)
  • 淇缂栬瘧鐨勬椂鍊欏姞鍏ヤ簡--enable-thread-context閫夐」浼氬鑷Process::signal()涓嶈捣浣滅敤(@NathanFreeman)
  • 淇鍦⊿WOOLE_BASE妯″紡涓嬶紝褰撹繘绋嬮潪姝e父閫鍑烘椂锛岃繛鎺ユ暟缁熻閿欒鐨勯棶棰 (@Yunrunsoft)
  • 淇stream_select()鍑芥暟绛惧悕閿欒 (@Yunrunsoft) (@NathanFreeman)
  • 淇鏂囦欢MIME淇℃伅澶у皬鍐欐晱鎰熼敊璇 (@hongweipeng)
  • 淇Http2\Request::$usePipelineRead鎷煎啓閿欒瀵艰嚧鍦≒HP8.2鐨勭幆澧冧笅浼氭姏鍑鸿鍛娿 (@NathanFreeman)
  • 淇鍦SWOOLE_BASE妯″紡涓嬬殑鍐呭瓨娉勬紡闂 (@dongzitai) (@NathanFreeman)
  • 淇褰Http\Response::cookie()璁剧疆cookie鐨勮繃鏈熸椂闂村鑷寸殑鍐呭瓨娉勬紡闂 (@NathanFreeman)
  • 淇鍦SWOOLE_BASE妯″紡涓嬬殑杩炴帴娉勬紡闂 (@NathanFreeman)

馃攽 鍐呮牳

  • 淇swoole鍦╬hp8.3涓嬬殑php_url_encode鐨勫嚱鏁扮鍚嶉棶棰 (@YepYuYu)
  • 淇鍗曞厓娴嬭瘯閫夐」闂 (@YepYuYu)
  • 浼樺寲锛岄噸鏋勪唬鐮 (@matyhtf)
  • 鍏煎PHP8.3 (@Yunrunsoft) (@matyhtf)
  • 涓嶆敮鎸32浣嶆搷浣滅郴缁熶笂缂栬瘧

馃寱馃ギ馃グ 绁濆ぇ瀹朵腑绉嬭妭蹇箰!

v5.0.3

26 Apr 09:24
Compare
Choose a tag to compare
  • 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 to Http\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

23 Feb 02:12
48c8a40
Compare
Choose a tag to compare
  • Fixed parameter compatibility of Coroutine::printBackTrace() and debug_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

06 Feb 09:54
6809ae4
Compare
Choose a tag to compare
  • 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 to Process::setPriority/getPriority
  • Added Coroutine\Socket::getBoundCid()
  • Adjusted the default value of Coroutine\Socket::recvLine/recvWithBuffer $length parameter to 65536
  • 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

07 Nov 06:06
71859e7
Compare
Choose a tag to compare
  • Supported PHP-8.2
  • Improved coroutine exception handling, compatible with ext-soap
  • Fixed parameter compatibility of Coroutine::printBackTrace() and debug_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 of Http\Response::setCookie() to expires, fix #4780

v4.8.12

21 Sep 10:06
Compare
Choose a tag to compare
  • 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

01 Aug 12:28
Compare
Choose a tag to compare

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 and Coroutine\MySQL

v4.8.11

08 Jul 10:08
Compare
Choose a tag to compare
  • Supports intel CET
  • Fixed #4712
  • Fixed crash issue when pdo persistent connection throws exception
  • Added Server::$ssl property
  • Added enable-cares option to pecl
  • Refactor multipart_parser
  • Fixed incorrect error message in Server::close()

v4.8.10

12 May 08:48
Compare
Choose a tag to compare
fix package.xml