Skip to content

๐Ÿ’Ž A curated list of awesome things related to Swoole.

License

Notifications You must be signed in to change notification settings

swoole/awesome-swoole

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Awesome Swoole Twitter Discord license

A curated list of awesome things related to Swoole.

Swoole Logo

Table of Contents

NOTE: Projects labelled with emoji ๐ŸŒ have their documentation written in non-English languages.

Architectural

Libraries related to design patterns, programming approaches and ways to organize code.

Client Packages

Cronjobs

  • hyperf/crontab - The cron component of Hyperf, allowing jobs to run at intervals of seconds.
  • osgochina/swoole-crontab - A Swoole-based crontab schedule. It allows jobs to run at intervals of seconds, and is fully compatible with crontab syntax. ๐ŸŒ

Database

Debugging and Profiling

  • Blackfire - A low-overhead code profiler.
  • SkyAPM PHP - The PHP instrument agent for Apache SkyWalking.
  • swoole/debugger - A remote debugger of Swoole. By adding one-line of code, you can debug your application remotely using a rich list of commands. ๐ŸŒ
  • Xdebug - A debug and profile tool for PHP. Xdebug 3.1.0+ works with Swoole 5.0.2+ on PHP 8.1+ only. Lower versions of Xdebug don't work with Swoole.
  • yasd - Yet Another Swoole Debugger, developed by codinghuang from the Swoole team. It's no longer actively maintained, and only works with lower versions of Swoole (Swoole < 5.0) and PHP (PHP <= 8.0). Please use Xdebug instead for latest versions of Swoole and PHP.

Development Environment

  • Docker
    • adhocore/lemp - A single container LEMP complete fullstack with latest releases of PHP (7.4 - 8.3) and MySQL, nginx, PostgreSQL, phalcon, swoole, mailcatcher, beanstalkd, elasticsearch, memcached, redis, adminer and all you ever need.
    • phpswoole/swoole - Official Docker image of Swoole.
  • IDE Helper

Distribution

  • shivammathur/extensions - ๐Ÿป Homebrew tap for PHP extensions.
  • static-php-cli - Build static PHP binary in Linux, with Swoole and other popular extensions included. ๐ŸŒ
  • swoole-cli - A prebuilt executable to run Swoole applications directly. No PHP installation required (just download and use it). Support Linux, macOS, and Windows. ๐ŸŒ

Frameworks

Framework Integration

To run PHP/PHP-FPM frameworks using Swoole.

  • PHP Runtimes - A home for runtimes, where people can easily create a Runtime to run an application with Bref, Swoole or ReactPHP without making any change to the application itself.
  • Drupal
    • The Swoole module for Drupal - The Swoole module for Drupal supercharges your website's performance by serving it via the Swoole or the OpenSwoole PHP server. The (Open)Swoole PHP server boots Drupal once, keeps it in memory and then feeds it requests at supersonic speeds. Thanks to daffie.
  • Laravel
    • Laravel Octane - A first-party Laravel package that supercharges laravelish application's performance by serving it using Swoole high-performance HTTP servers. Developed and maintained by the Laravel team.
    • hhxsv5/laravel-s - An out-of-the-box adapter between Laravel/Lumen and Swoole.
    • huang-yi/shadowfax - Runs your Laravel application on Swoole.
    • scil/laravel-fly - To be an absolutely safe solution to speed up Laravel with Swoole. Preloading + Coroutine and Tinker Online.
    • swooletw/laravel-swoole - A high-performance HTTP server to run Laravel/Lumen application on top of Swoole.
    • toxmc/fast-laravel - A Swoole-based high-performance HTTP server to speed up your Laravel applications. ๐ŸŒ
  • Phalcon
  • Slim
  • Symfony
    • swoole-bundle/swoole-bundle - Symfony integration with Swoole or Open Swoole to speed up your applications.
    • symfony/runtime - The Runtime component decouples the bootstrapping logic from any global state to make sure the application can run with runtimes like PHP-FPM, ReactPHP, Swoole, etc. without any changes. For a more generic implementation that works with other frameworks/environments, please check project PHP Runtimes.
  • ThinkPHP
  • Yii
  • Utopia - A PHP MVC based framework with minimal must-have features for professional, simple, advanced and secure web development.
    • Utopia Swoole - An extension for Utopia Framework to work with PHP Swoole as a PHP FPM alternative.
  • WordPress

gRPC

  • hyperf/grpc-client - The gRPC client component of Hyperf.
  • hyperf/grpc-server - The gRPC server component of Hyperf.
  • mix/grpc - A gRPC implementation based on Swoole. Protoc code generator, server, client, and more features included. ๐ŸŒ
  • swoole/grpc - An efficient Swoole-based gRPC client. ๐ŸŒ

HTTP and WebSocket

Libraries for working with HTTP and WebSocket.

  • PSR Compliance
  • Saber - A coroutine-based HTTP client. ๐ŸŒ
  • Yurunsoft/Guzzle-Swoole - Make the Guzzle library coroutine-friendly in Swoole. It works with many Guzzle-based packages and Swoole-based frameworks. ๐ŸŒ
  • Yurunsoft/YurunHttp - An easy-to-use HTTP client that works with HTTP/1, HTTP/2, and WebSocket protocols. It also supports chained operations, concurrent processing, and connection pool. ๐ŸŒ
  • Utopia WebSocket - A simple and lite abstraction layer around a WebSocket server. This library is aiming to be as simple and easy to learn and use.

Logging

Serverless

SOA governance

Tasks and Queues

  • Archer - A Swoole-based task component, with different runtime modes supported: serial queue, concurrent queue, defer, timer, etc. ๐ŸŒ
  • hyperf/amqp - The AMQP client of Hyperf.
  • hyperf/async-queue - The Redis-based asynchronous queue component of Hyperf.
  • hyperf/task - The task component of Hyperf, providing an easy way to add and dispatch tasks to task workers in Swoole.
  • kcloze/swoole-jobs - An efficient Swoole-based job queue system. ๐ŸŒ
  • littlesqx/aint-queue - An async-queue library built on top of Swoole.
  • longlang/phpkafka - A coroutine-based Kafka client.

Testing

  • deminy/counit - To run time/IO related unit tests (e.g., sleep function calls, database queries, API calls, etc) faster using Swoole.

Third-party SDK

Web Applications

Web-based applications and tools.

  • HyperfAdmin - An administration panel built with Swoole, Hyperf, and Vue.js. ๐ŸŒ
  • MineAdmin - An administration panel built with Swoole, Hyperf, and Vue 3. ๐ŸŒ
  • wopits - A world of post-its - An app for managing projects online using sticky notes to share and collaborate. It uses Swoole as a WebSocket & Task server.
  • yurun-crawler - A framework to build high-performance, distributed web crawler. ๐ŸŒ
  • zhamao-framework - A chatbot system based on an award-winning project in China. ๐ŸŒ

Miscellaneous

  • crowdstar/exponential-backoff - A library to prevent overloading an unavailable service by doubling the timeout each iteration. It works under both Swoole (in non-blocking mode) and PHP-FPM.
  • Futures and Promises
  • hhxsv5/php-sse - A simple and efficient library implemented HTML5's server-sent events using PHP.
  • k8s/client - A Kubernetes API client for PHP.
  • leocavalcante/swoole-mutex - Mutual exclusion abstractions for PHP's Swoole concurrency run-time.
  • mix/sync-invoke - A library to execute synchronous blocking code without blocking the running process in Swoole. ๐ŸŒ
  • Rubix ML - A high-level machine learning and deep learning library for the PHP language.
  • Shlink Event Dispatcher - Event dispatching using PSR-14, with async event listener that are executed in swoole task system.
  • xlswriter - A coroutine-friendly PHP Extension to create and read XLSX files.
  • swoole-utils - A collection of utilities for building concurrent applications with Swoole. #WIP

Resources

Swoole Books

Fantastic Swoole-related books.

Swoole Videos

Fantastic Swoole-related videos.

Miscellaneous

Alternatives

  • Open Swoole - A fork of Swoole that is maintained by the Open Swoole team.