Swoole Src Versions Save

🚀 Coroutine-based concurrency library for PHP

v4.8.0

2 years ago

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 (swoole/swoole-src@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 (swoole/swoole-src@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 (swoole/swoole-src@2198378) (@matyhtf)

v4.7.1

2 years ago

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

2 years ago

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 (swoole/swoole-src@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 (swoole/swoole-src@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

  • Did not hook disabled functions (#4283) (@twose)

Test

  • Added Cygwin build (#4222) (@sy-records)
  • Added alpine 3.13 and 3.14 into building test (#4309) (@limingxinleo)

v4.6.7

3 years ago

Enhancement

  • Supported call Process::signal() in Manager process and Task synchronous process (#4190) (@matyhtf)

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 (swoole/swoole-src@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 (swoole/swoole-src@46ab345) (@matyhtf)

v4.6.6

3 years ago

Enhancement

  • Sent SIGTERM to the manager process on FreeBSD when master process is dead (#4150) (@devnexen)
  • Supported static compilation with PHP (#4153) (@matyhtf)
  • Supported SNI for File Wrapper over HTTP proxy (#4158) (@matyhtf)

Fixed

  • Fixed sync-client async connect bugs (#4152) (@matyhtf)
  • Fixed native curl multi mem leak (swoole/swoole-src@91bf243) (@matyhtf)

v4.6.5

3 years ago

New APIs

  • Add count method to WaitGroup (swoole/library#100) (@sy-records) (@deminy)

Enhancement

  • Supported native curl multi (#4093) (#4099) (#4101) (#4105) (#4113) (#4121) (swoole/swoole-src@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

3 years ago

Fixed

  • Fix httpclient proxy with host and port

v4.6.4

3 years ago

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 (swoole/swoole-src@91704ac) (@matyhtf)
  • Supported tcp_defer_accept option for FreeBSD (#4049) (@devnexen)

Fixed

  • Fixed Proxy-Authorization missing when use Coroutine\Http\Client (swoole/swoole-src@edc0552) (@matyhtf)
  • Fixed memory allocation issues with Swoole\Table (swoole/swoole-src@3e7770f) (@matyhtf)
  • Fixed crash when Coroutine\Http2\Client connects concurrently (swoole/swoole-src@630536d) (@matyhtf)
  • Fixed enable_ssl_encrypt with DTLS (swoole/swoole-src@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 (swoole/swoole-src@08ea20c) (@matyhtf)
  • Fixed Swoole\Table mem leaks (swoole/swoole-src@d78ca8c) (@matyhtf)

v4.4.24

3 years ago

Fixed

  • Fixed crash when http2 client connects concurrently (#4079)

v4.6.3

3 years ago

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 (swoole/swoole-src@709813f) (@matyhtf)
  • Fixed JIT being disabled (#4029) (@twose)
  • Fixed Response::create() bug (swoole/swoole-src@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)

Kernel

  • Optimized ssl_connect/ssl_shutdown (#4030) (@matyhtf)
  • Exit the process directly when a fatal error occurs (#4053) (@matyhtf)