| Package Information |
| Summary |
Event-driven asynchronous and concurrent networking engine with high performance for PHP. |
| Maintainers |
Han Tianfeng <
rango at swoole dot com >
(lead)
[details]
Bruce Dou <
doubaokun at php dot net >
(developer)
[details]
Lufei <
lufei 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 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 6.2.0RC1
(alpha)
|
- Added coroutine-based `FTP` client. By including the `--enable-swoole-ftp` option during compilation, coroutine support for `FTP` operations can be enabled to avoid network blocking. - Added coroutine-based `SSH` client. By including the `--enable-swoole-ssh` option during compilation, coroutine support for `SSH` operations can be enabled to improve concurrency efficiency. - Added support for `io_uring` in the `HTTP` coroutine server. The `HTTP` coroutine server can now utilize the high-performance `io_uring` event mechanism. Enable it by adding the `--enable-uring_socket` option during compilation for better I/O performance. - Added the `Swoole\RemoteObject\Server` module, providing transparent coroutine operation support for `MongoDB`. - Added the `Swoole\Coroutine::setTimeLimit()` function to control coroutine execution timeout, preventing coroutines from occupying resources for extended periods. - Added `URL` rewriting support for the `HTTP` static file server. - Added coroutine support for `pdo_firebird`. - Added support for `PHP 8.5`. - Added coroutine support for the `gethostbyname` function. - Optimized the implementation of `Server::shutdown()`, replacing signal communication with pipe communication in `Process` mode. - In the callback functions of Swoole's HTTP servers (including Swoole\Http\Server, Swoole\Http2\Server, and Swoole\Coroutine\Http\Server), the `server` property of the `Swoole\Http\Request` object now includes a new `server_addr` field, which identifies the server's IP address. - `SSH` and `FTP` coroutine clients cannot coexist with PHP's `ext-ssh` and `ext-ftp`. To enable these features, the PHP `ssh` and `ftp` extensions must be disabled. - Fixed an issue where the HTTP2 server session was released multiple times in a multi-threaded environment. - Fixed an issue in version `8.5` where `refresh_memory_manager()` must be executed after forking a child process or creating a child thread; otherwise, the program would crash. - Fixed an issue where the `swoole_get_local_mac` function did not work correctly on `macOS` systems. - Fixed a potential crash issue that could occur when users manually suspended coroutines in a multi-threaded environment. - Fixed compilation errors on Alpine systems. - Fixed a memory leak issue when function hooking failed. - Fixed thread safety issues during the coroutinization process of `pdo_sqlite` and `pdo_oci`. - Fixed the `sw_php_print_backtrace` function to ensure its output format matches the backtrace information format of PHP's built-in functions. - Executing `php --ri swoole` now outputs version information for `libpq`. - Optimized logic related to `io_uring` in file coroutine operations. - Added PHP call stack information output when event addition fails. - Optimized the implementation code for the `swoole_get_local_ip` and `swoole_get_local_mac` functions. - Optimized the coroutine waiting time for file locks to prevent exponentially increasing sleep times from making locks increasingly difficult to acquire. - Improved compatibility with the `Android` platform. - Removed the `--enable-openssl` compilation option; support for `OpenSSL` is now included by default. - `--enable-uring-socket` requires explicitly specifying either `--enable-iouring` or `--with-liburing-dir`. - `PHP 8.1` is no longer supported. - Swoole 6.2.0 RC1 is currently a release candidate version and can only be used in testing environments. It is prohibited to use it in production environments. |