Releases: swoole/swoole-src
Releases · swoole/swoole-src
v4.8.0
Backward compatibility Break
- In base mode, the onStart callback is always called back when the first worker process (worker ID is 0) starts, before onWorkerStart callback. The coroutine API can always be used in the onStart callback, and onStart is called back again when worker-0 restarts with a fatal error (#4389) (@matyhtf)
- In versions prior to 4.8.0, onStart is called back in worker-0 when there is only one worker process, and called back in the Manager process when there are multiple worker processes.
New APIs
- Added Co::getStackUsage() (#4398) (@matyhtf) (@twose)
- Added Coroutine\Redis some api (#4390) (@chrysanthemum)
- Added Table::stats() (#4405) (@matyhtf)
- Added Coroutine::join() (#4406) (@matyhtf)
New feature
- Supported server command (#4389) (@matyhtf)
- Supported Server::onBeforeShutdown callback (#4415) (@matyhtf)
Enhancement
- Set error code when websocket pack fails (d27c5a5) (@matyhtf)
- Added Timer::exec_count field (#4402) (@matyhtf)
- Supported for hooked mkdir using open_basedir ini config (#4407) (@NathanFreeman)
- Added vendor_init.php (swoole/library@6c40b02) (@matyhtf)
- Supported CURLOPT_UNIX_SOCKET_PATH for SWOOLE_HOOK_CURL (swoole/library#121) (@sy-records)
- Supported ssl_ciphers config for client (#4432) (@amuluowin)
- Added some new information for Server::stats() (#4410) (#4412) (@matyhtf)
Fixed
- Fixed unnecessary URL decode of file names when uploading files (a73780e) (@matyhtf)
- Fixed HTTP2 max_frame_size error (#4394) (@twose)
- Fixed curl_multi_select bug #4393 (#4418) (@matyhtf)
- Fixed missing coroutine options (#4425) (@sy-records)
- Fixed connection cannot be forcibly closed when the send buffer is full (2198378) (@matyhtf)
v4.7.1
New feature
- Introduce a new concurrency mode (#4330) (@doubaokun)
Enhancement
- Supported query /etc/hosts for System::dnsLookup (#4341) (#4349) (@zmyWL) (@NathanFreeman)
- Supported boost context support for mips64 (#4358) (@dixyes)
- Supported CURLOPT_RESOLVE option for SWOOLE_HOOK_CURL (swoole/library#107) (@sy-records)
- Supported CURLOPT_NOPROGRESS for SWOOLE_HOOK_CURL (swoole/library#117) (@sy-records)
- Supported boost context support for riscv64 (#4375) (@dixyes)
Fixed
- Fixed memory error on shutdown (PHP-8.1) (#4325) (@twose)
- Fixed not serializable classes for 8.1.0beta1 (#4335) (@remicollet)
- Fixed multiple coroutines recursively creating directories (#4337) (@NathanFreeman)
- Fixed native curl bugs (#4360) (@matyhtf)
- Fixed PDOStatement::bindParam() expects parameter 1 to be string (swoole/library#116) (@sy-records)
v4.7.0
New APIs
- Added Process\Pool::detach() (#4221) (@matyhtf)
- Added onDisconnect callback for Swoole\Server (#4230) (@matyhtf)
- Added Coroutine::cancel() (#4247) (#4249) (@matyhtf)
- Added http_compression/body_decompression options for Http Client (#4299) (@matyhtf)
Enhancement
- Supported mysql client prepare field type identification (#4238) (@Yurunsoft)
- Supported c-ares, Refactor DNS (#4275) (@matyhtf)
- Supported setting different idle time for each port (#4290) (@matyhtf)
- Supported SW_DISPATCH_CO_CONN_LB and SW_DISPATCH_CO_REQ_LB for Swoole\Server dispatch_mode (#4318) (@matyhtf)
- Supported timeout for Swoole\ConnectionPool::get (swoole/library#108) (@leocavalcante)
- Supported CURLOPT_PRIVATE for Hook Curl (swoole/library#112) (@sy-records)
- Optimized PDOStatementProxy::setFetchMode function prototype (swoole/library#109) (@yespire)
Fixed
- Fixed uncaught thread creation exception when creating a large number of coroutines (8ce5041) (@matyhtf)
- Fixed the "make install" missing php_swoole.h header file (#4239) (@sy-records)
- Fixed EVENT_HANDSHAKE BC (#4248) (@sy-records)
- Fixed SW_LOCK_CHECK_RETURN (#4302) (@zmyWL)
- Fixed problems with Swoole\Atomic\Long M1 chip (e6fae2e) (@matyhtf)
- Fixed missing return value of Coroutine\go (swoole/library@1ed49db) (@matyhtf)
- Fixed StringObject consistency between other methods and its immutability (swoole/library#111) (@leocavalcante)
- Fixed StringObject substr error (swoole/library#113) (@sy-records)
Kernel
Test
- Added Cygwin build (#4222) (@sy-records)
- Added alpine 3.13 and 3.14 into building test (#4309) (@limingxinleo)
v4.6.7
Enhancement
Fixed
- Fixed signal cannot be registered repeatedly (#4170) (@matyhtf)
- Fixed build on OpenBSD/NetBSD (#4188) (#4194) (@devnexen)
- Fixed special case OnClose event missing while listening for writable events (#4204) (@matyhtf)
- Fixed native curl with Symfony HttpClient (#4208) (@matyhtf)
- Fixed Http\Response::end() always return true (66fcc35) (@matyhtf)
- Fixed PDOException generated by PDOStatementProxy (swoole/library#104) (@twose)
Kernel
- Refactored worker buffer, add msg id for the event data (#4163) (@matyhtf)
- Changed the log level of "Request Entity Too Large" to warning (#4175) (@sy-records)
- Deleted inet_ntoa and inet_aton calls (#4199) (@remicollet)
- Adjusted output_buffer_size value to UINT_MAX (46ab345) (@matyhtf)
v4.6.6
v4.6.5
New APIs
- Add count method to WaitGroup (swoole/library#100) (@sy-records) (@deminy)
Enhancement
- Supported native curl multi (#4093) (#4099) (#4101) (#4105) (#4113) (#4121) (cd7f51c) (#4147) (@matyhtf) (@sy-records) (@huanghantao)
- Allow array HTTP/2 headers, Bug fixed for #4133 (#4140)
Fixed
- Fixed NetBSD build (#4080) (@devnexen)
- Fixed OpenBSD build. (#4108) (@devnexen)
- Fixed illumos/solaris build, member aliases only (#4109) (@devnexen)
- Fixed heartbeat detection of SSL connection does not take effect when handshake is not completed (#4114) (@matyhtf)
- Fixed httpclient proxy with host and port (#4124) (@Yurunsoft)
- Fixed Swoole\Coroutine\Http::request, correct array to the client setting (swoole/library#103) (@leocavalcante) (@deminy)
Kernel
- Supported asm context on BSD (#4082) (@devnexen)
- Used arc4random_buf to implement getrandom under FreeBSD (#4096) (@devnexen)
- Make context darwin arm64: removes workaround and uses the label (#4127) (@devnexen)
Test
- Added build job for alpine (#4104) (@limingxinleo)
v4.4.25
Fixed
- Fix httpclient proxy with host and port
v4.6.4
New APIs
- Added Coroutine\Http::request, Coroutine\Http::post, Coroutine\Http::get (swoole/library#97) (@matyhtf)
Enhancement
- Supported ARM 64 build (#4057) (@devnexen)
- Supported set open_http_protocol in Swoole TCP Server (#4063) (@matyhtf)
- Supported ssl client only set certificate (91704ac) (@matyhtf)
- Supported tcp_defer_accept option for FreeBSD (#4049) (@devnexen)
Fixed
- Fixed Proxy-Authorization missing when use Coroutine\Http\Client (edc0552) (@matyhtf)
- Fixed memory allocation issues with Swoole\Table (3e7770f) (@matyhtf)
- Fixed crash when Coroutine\Http2\Client connects concurrently (630536d) (@matyhtf)
- Fixed enable_ssl_encrypt with DTLS (842733b) (@matyhtf)
- Fixed Coroutine\Barrier mem leak (swoole/library#94) (@Appla) (@FMiS)
- Fixed the offset error caused by CURLOPT_PORT and CURLOPT_URL order (swoole/library#96) (@sy-records)
- Fixed Table::get($key, $field) when field type is float (08ea20c) (@matyhtf)
- Fixed Swoole\Table mem leaks (d78ca8c) (@matyhtf)
v4.4.24
v4.6.3
New APIs
- Added Swoole\Coroutine\go function (swoole/library@82f63be) (@matyhtf)
- Added Swoole\Coroutine\defer function (swoole/library@92fd0de) (@matyhtf)
Enhancement
- Added option compression_min_length for HTTP Server (#4033) (@matyhtf)
- Allowed setting content-length HTTP header in application layer (#4041) (@doubaokun)
Fixed
- Fixed coredump when program reach file open limitation (709813f) (@matyhtf)
- Fixed JIT being disabled (#4029) (@twose)
- Fixed Response::create() bug (a630b5b) (@matyhtf)
- Fixed task process id false positives on ARM (#4040) (@doubaokun)
- Fixed README (#4046) (@asheroto)
- Fixed native-curl crash on PHP8 (#4042) (#4045) (@Yurunsoft) (@matyhtf)
- Fixed mem error (#4050) (@matyhtf)