swoole 4.6.0

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

Changes

Backward compatibility Break
---
* Removed the maximum limit of session id, never repeat (#3879) (@matyhtf)
* Disabled unsafe function when use Coroutine, including pcntl_fork/pcntl_wait/pcntl_waitpid/pcntl_sigtimedwait (#3880) (@matyhtf)
* Enabled coroutine hook by default (#3903) (@matyhtf)

Remove
---
- No longer support PHP-7.1 (swoole/swoole-src@4a963df) (swoole/swoole-src@9de8d9e) (@matyhtf)

Deprecated
---
- Marked the Event::rshutdown() as deprecated, please use Coroutine::run instead (#3881) (@matyhtf)

New APIs
---
+ Supported setPriority/getPriority (#3876) (@matyhtf)
+ Supported native-curl hook (#3863) (@matyhtf) (@huanghantao)
+ Supported object style callback parameters for Server, off by default (#3888) (@matyhtf)
+ Supported ext-sockets hook (#3898) (@matyhtf)
+ Supported duplicate header (#3905) (@matyhtf)
+ Supported SSL sni (#3908) (@matyhtf)
+ Supported hook stdio (#3924) (@matyhtf)
+ Supported capture_peer_cert option for stream_socket (#3930) (@matyhtf)
+ Added Http\Request::create/parse/isCompleted (#3938) (@matyhtf)
+ Added Http\Response::isWritable (swoole/swoole-src@db56827) (@matyhtf)

Enhancement
---
+ All time accuracy of Server changed from int to double (#3882) (@matyhtf)
+ Added poll EINTR check for swoole_client_select (#3909) (@shiguangqi)
+ Added coroutine deadlock detect (#3911) (@matyhtf)
+ Supported closing the connection in another process with server base mode (#3916) (@matyhtf)
+ Optimized send to worker from master, reduced memory copy (#3910) (@huanghantao) (@matyhtf)

Fixed
---
* Pop Coroutine::Channel data when channel is closed (swoole/swoole-src@960431d) (@matyhtf)
* Fixed memory error when use JIT (#3907) (@twose)
* Fixed port->set() dtls compile error (#3947) (@Yurunsoft)
* Fixed connection_list error (#3948) (@sy-records)
* Fixed ssl verify (#3954) (@matyhtf)
* Clear all columns when incr and decr (#3956) (@matyhtf) (@sy-records)
* Fixed failed to compile with LibreSSL 2.7.5 (#3962) (@matyhtf)
* Fixed undefined constant CURLOPT_HEADEROPT and CURLOPT_PROXYHEADER

Kernel
---
* Ignored SIGPIPE signal by default (swoole/swoole-src@9647678) (@matyhtf)
* Supported running php and c coroutines at same time (swoole/swoole-src@c94bfd8) (@matyhtf)
* Added TEST(coroutine_base, get_elapsed) (#3961) (@luolaifa000)
* Added TEST(coroutine_base, get_init_msec) (#3964) (@luffluo)