Login  |  Packages  |  Support  |  Bugs
Top Level :: Event :: swoole :: 4.5.0

swoole 4.5.0

Package Information
Summary Event-driven asynchronous and concurrent networking engine with high performance for PHP.
Maintainers shen zhe < shenzhe163 at gmail dot com > (developer) [details]
Han Tianfeng < rango at swoole dot com > (lead) [details]
Lufei < lufei at php dot net > (developer) [details]
Bruce Dou < doubaokun at php dot net > (developer) [details]
License Apache2.0
Description 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
Homepage https://github.com/swoole/swoole-src
Release notes
Version 4.5.0
(stable)
New APIs
---
+ DTLS supports, we can build WebRTC applications now (#3188) (@matyhtf)
+ Built-in `FastCGI` client, we can proxy HTTP request to FPM with one line of code now (swoole/library#17) (@twose)
+ `Co::wait`, `Co::waitPid`, `Co::waitSignal` (#3158) (@twose)
+ `Co::waitEvent` (#3197) (@twose)
+ `Co::set(['exit_condition' => $callable])` to exit condition of reactor (#2918) (#3012) (@twose)
+ `Co::getElapsed` to get the coroutine elapsed time (#3162) (@doubaokun)
+ `Socket::checkLiveness`, `Socket::peek` (#3057) (@twose)
+ `Socket->setProtocol(['open_fastcgi_protocol' => $bool])` (#3103) (@twose)
+ `Server::get(Master|Manager|Worker)Pid`, `Server::getWorkerId` (#2793) (#3019) (@matyhtf)
+ `Server::getWorkerStatus` (SWOOLE_WORKER_BUSY, SWOOLE_WORKER_IDLE) (#3225) (@matyhtf)
+ `Server->on('beforeReload', $callable)` and `Server->on('afterReload', $callable)` (Server reload event on manager process) (#3130) (@huanghantao)
+ `Http\Server` support `http_index_files` and `http_autoindex` with static handler (#3171) (@huanghantao)
+ `Http2\Client->read(float $timeout = -1)`, support Coroutine\HTTP2\Client read more than once (#3011) (#3117) (@twose)
+ `Http\Request->getContent` (alias of rawContent) (#3128) (@huanghantao)
+ `swoole_mime_type_(add|set|delete|get|exists)` (mime APIs) (#3134) (@twose)

Enhancement
---
+ Optimize memory-copy between master and worker (4x faster) (#3075) (#3087) (@huanghantao)
+ Optimize websocket dispatch (1x faster) (#3076) (@matyhtf)
+ Optimize memory-copy in websocket_construct_frame (1x faster) (#3097) (@matyhtf)
+ Optimize SSL validation (#3226) (@matyhtf)
+ Separate SSL accept and SSL handshake (#3214) (@twose)
+ Support MIPS (#3196) (@ekongyun)
+ Resolve the domain name when use udp coroutine client (#3236) (#3239) (@huanghantao)
+ Support some common options for Coroutine\Http\Server (#3257) (@twose)
+ Support set cookies when websocket handshake (#3270) (#3272) (@twose)
+ Support CURLOPT_FAILONERROR (swoole/library#20) (@sy-records)
+ Support CURLOPT_FAILONERROR (swoole/library#20) (@sy-records)
+ Support CURLOPT_SSLCERTTYPE, CURLOPT_SSLCERT, CURLOPT_SSLKEYTYPE, CURLOPT_SSLKEY (swoole/library#22) (@sy-records)
+ Support CURLOPT_HTTPGET (swoole/library@d730bd08) (@shiguangqi)

Remove
---
- Remove `Runtime::enableStrictMode` method (b45838e3) (@twose)
- Remove `Buffer` class (559a49a8) (@twose)

Kernel
---
* New C++ API: `coroutine::async` with lambda (#3127) (@matyhtf)
* Refactor event API and reactor fd to swSocket (#3030) (@matyhtf)
* Convert all source files to C++ (#3030) (71f987f3) (@matyhtf)
* Code optimizations (#3063) (#3067) (#3115) (#3135) (#3138) (#3139) (#3151) (#3168) (@huanghantao)
* Code optimization for header files (#3051) (@matyhtf)
* Refactor `enable_reuse_port` option (#3192) (@matyhtf)
* Reactor Socket API (#3193) (@matyhtf)
* Reduce one system call (3b5aa85d) (@matyhtf)
* Remove swServerGS::now (#3152) (@huanghantao)
* Improve protocol setter (#3108) (@twose)
* Use the Better way to init C object on stack (#3069) (@twose)
* Use type `uchar` for bit field (#3071) (@twose)
* Support parallel test (#3215) (@twose)

Fixed
---
* Fixed `enable_delay_receive` (#3221) (#3224) (@matyhtf)
* All other bug fix patches have already been merged into the v4.4.x branch, we will not reiterate them here

[ Latest Tarball ] [ Changelog ] [ View Statistics ]
[ Browse Source ] [ Package Bugs ] [ View Documentation ]

Dependencies for release 4.5.0
PRIVACY POLICY  |  CREDITS
Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Mar 21 17:05:02 2024 UTC
Bandwidth and hardware provided by: pair Networks