swow/swow

Coroutine-based multi-platform support engine with a focus on concurrent I/O

Maintainers

Details

github.com/swow/swow

Source

Issues

Installs: 1 149 560

Dependents: 106

Suggesters: 162

Security: 0

Stars: 1 139

Watchers: 52

Forks: 111

Open Issues: 29

Language:C

v1.5.2 2024-05-13 11:55 UTC

README

English | 中文

Swow Logo
🚀 Swow is a multi-platform support and coroutine-based engine with a focus on concurrent I/O

license ci codecov release ❤️ php platform architecture

👾 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:

❤️ 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.

Contributors

💬 Development & Discussion

📃 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.