swoole

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 mysql client
- coroutine redis client
- coroutine read/write file system
- coroutine dns lookup
- support IPv4/IPv6/UnixSocket/TCP/UDP
- support SSL/TLS encrypted transmission

License: Apache2.0

Latest releases

Version Release Download
4.6.1 2021-01-11 swoole-4.6.1.tgz
4.6.0 2021-01-06 swoole-4.6.0.tgz
4.5.11 2021-01-11 swoole-4.5.11.tgz
4.5.10 2020-12-23 swoole-4.5.10.tgz
4.5.9 2020-11-27 swoole-4.5.9.tgz
Show all releases

Changelog

Version Message
4.6.1 Enhancement
---
+ Added --enable-thread-context option (#3970) (@matyhtf)
+ Strict session_id, check the connection activity (#3993) (@matyhtf)
* Optimized CURLOPT_PROXY, support user, pass and scheme (swoole/library#87) (sy-records)

Fixed
---
* Fixed minimal PHP version (#3979) (@remicollet)
* Fixed pecl install missing enable-swoole-json and enable-swoole-curl options (#3980) (@sy-records)
* Fixed openssl thread safety issue (swoole/swoole-src@b516d69) (@matyhtf)
* Fixed enableSSL coredump (#3990) (@huanghantao)

Kernel
---
* Optimized ipc writev, avoid coredump how event data is null (#3994) (@matyhtf)
4.6.0 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)
4.5.11 Enhancement
---
* Optimize table (#3959) (@matyhtf)
* Enhancement CURLOPT_PROXY (swoole/library#87) (@sy-records)

Fixed
---
* Clear all columns when incr and decr (#3956) (@matyhtf)
* Fixed compile error (49fea171) (@matyhtf)
* Fixed fread bugs (#3972) (@matyhtf)
* Fixed openssl thread safety issue (7ee2c1a0) (@matyhtf)
* Fixed Invalid argument supplied for foreach (swoole/library#80) (@sy-records)
* Fixed trigger_error param error (swoole/library#86) (@sy-records)
4.5.10 Fixed
---
* Fixed #3906, sync master (93901dc0) (@matyhtf)
* Fixed PHP8 compatibility (f0dc6d32) (@matyhtf)
* Fixed connection_list error (#3948) (@sy-records)
4.5.9 Enhancement
---
+ Added SWOOLE_HTTP_CLIENT_ESTATUS_SEND_FAILED constant for Coroutine\\Http\\Client (#3873) (@sy-records)

Fixed
---
* Fixed PHP8 compatibility (#3868) (#3869) (#3872) (@twose) (@huanghantao) (@doubaokun)
* Fixed undefined constant CURLOPT_HEADEROPT and CURLOPT_PROXYHEADER (swoole/library#77) (@sy-records)
* Fixed CURLOPT_USERPWD (swoole/library@7952a7b6) (@twose)
Show complete changelog