swow / swow
Coroutine-based multi-platform support engine with a focus on concurrent I/O
Installs: 1 304 639
Dependents: 113
Suggesters: 173
Security: 0
Stars: 1 194
Watchers: 53
Forks: 113
Open Issues: 35
Language:C
Requires
- php: >=8.0
- composer/semver: ^3.4
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.1|^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3
- phan/phan: ^5.4
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9|^10|^11
- rector/rector: ^1
Suggests
- ext-swow: *
Replaces
- swow/php-stub-generator: *
- swow/psr7-plus: *
- swow/swow-library: *
- swow/swow-stub: *
- swow/swow-utils: *
This package is auto-updated.
Last update: 2024-10-29 04:00:19 UTC
README
🚀 Swow is a multi-platform support and coroutine-based engine with a focus on concurrent I/O
👾 Design Philosophy
Swow is committed to using the smallest C core and most of the PHP code to support PHP high-performance network programming, which determines that it is more about providing powerful secondary development capabilities by seamlessly integrating PHP code and C kernel, while ensuring critical performance.
In addition, it provides a variety of debugging mechanisms and powerful and low-threshold debugging tools, which can ensure that developers are free from the trouble of BUGs as much as possible, and ordinary developers can also have the ability to debug near the level of experts with the help of tools, so as to maximize development efficiency.
🎮 Installation
Like any open source project, Swow always provides the strongest stability and features in the newest release, please try to ensure that you are using the latest version.
🔎 Requirements
- Common operating systems such as Linux, Windows, macOS, etc. Almost same as libuv
- PHP 8.0.0 or above, the latest version is recommended
👨🎤 By Composer
pull source code:
composer require swow/swow
Then run the automatic installer swow-builder
under the vendor/bin
directory to start the installation:
./vendor/bin/swow-builder --install
After you update the source code of Swow, you should use the rebuild
option to recompile Swow and then install it:
./vendor/bin/swow-builder --rebuild --install
More information about swow-builder
can be found in Extension installation document - By Composer.
🐧 Manual installation (UNIX-like)
clone the Swow (You can also import it through Composer, and then cd to vendor/swow/swow/ext
and install manually):
git clone https://github.com/swow/swow.git
Well-known building procedure. Install to the system with root privileges:
cd swow/ext && \ phpize && ./configure && make && \ sudo make install
Ⓜ️ Manual installation (Windows)
See Installation document - Manual compilation installation (Windows).
You can also download DLL directly in Latest Release.
🔰️ Security issues
Security issues should be reported privately, via email, to twosee@php.net. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message.
🖊️ Contribution
Your contribution to Swow development is very welcome!
You may contribute in the following ways:
- Report issues and feedback
- Submit fixes, features via Pull Request
- Write/polish documentation via GitHub
❤️ Contributors
PHP high-performance coroutine network communication engine development road is too high to be popular, It's a lonely open source work at the top.
Thank you very much to the following partners for the contribution of the Swow project, without you there is no Swow now.
💬 Development & Discussion
- Wiki:https://docs.toast.run/swow/en
- Blog (CHS) https://docs.toast.run/swow-blog/chs
- Features (CHS) https://docs.toast.run/swow-blog/chs/init.html
- API Reference:https://docs.toast.run/swow-api/ci.html
- Discussions:https://github.com/swow/swow/discussions
- TODO:https://github.com/swow/swow/projects
📃 License
Swow is available under the Apache License Version 2.0. Swow also includes external libraries that are available under a variety of licenses. See LICENSES.full for the full license text.