# swoole相關開源項目
## 框架
* [TSF](https://github.com/tencent-php/tsf) Tencent-TSF 騰訊公司推出的PHP協程框架,基于Swoole+PHP Generator實現Coroutine,可以像Golang一樣用協程實現高并發服務器。
* [swoole_framework](https://github.com/matyhtf/framework) SwooleFramework是一個全功能的后端服務器框架
* [zphp](https://github.com/shenzhe/zphp) 一個極輕的的,專用于游戲(社交,網頁,移動)的服務器端開發框架.提供高性能實時通信方案。zphp使用swoole作為底層網絡通信的框架。
* [zapi](https://github.com/keaixiaou/zapi) 基于swoole+generator的http api異步非阻塞輕量級框架,內置mysql、redis、memcached、mongodb全套異步客戶端的連接池,內置http異步客戶端,近乎同步的寫法,卻是異步的調用,性能強悍
* [zhttp](https://github.com/keaixiaou/zhttp) 基于swoole+generator的異步非阻塞輕量級web框架,內置mysql、redis、memcached、mongodb全套異步客戶端的連接池,內置http異步客戶端,近乎同步的寫法,卻是異步的調用,性能強悍
* [swoole-yaf](https://github.com/LinkedDestiny/swoole-yaf) 結合PHP的Yaf框架和Swoole擴展的高性能PHP Web框架
* [Swoole-Yaf](https://github.com/wenjun1055/swoole-yaf) 將Yaf框架和Swoole擴展提供的HttpServer結合在一起,server和框架高度結合形成超高性能的組合
* [ciswoole](https://github.com/smalleyes/ciswoole) ci2.2結合Swoole_Http_Server
* [Blink](https://github.com/bixuehujin/blink) 是一個為構建 “long running” 服務而生的 Web 微型高性能框架,它為構建 Web 應用程序提供簡潔優雅的API,盡量的減輕我們的常規開發工作
* [Group-co](https://github.com/fucongcong/Group-Co) 優雅的異步協程框架,支持服務化搭建高并發httpserver,支持分布式使用,詳情請戳鏈接。
* [SwooleMan](https://github.com/osgochina/SwooleMan) SwooleMan 是基于Swoole開發的兼容Workerman API 的一個服務框架. 致力于幫助現有的workerman項目,方便的運行在Swoole服務上,享受swoole帶來的高性能.
* [swoole-worker](https://github.com/osgochina/swoole-worker) 基于swoole_process的workerman,移除了對pcntl,libevent,event擴展的依賴,轉而使用swoole提供的swoole_process和swoole_event,定時器采用swoole的swoole_timer
* [FastD](https://github.com/JanHuang/fastD) FastD 適用于對性能有要求的 API 場景,并且靈活的擴展性可以讓開發者們更容易地建造自己的服務。支持HTTP、TCP、UDP、WebSocket,簡單,易用。
* [easySwoole](https://github.com/kiss291323003/easyswoole) easySwoole 專為API而生,支持多層級(組模式)控制器訪問與多種事件回調,高度封裝了Swoole Server 而依舊維持Swoole Server原有特性,支持在 Server 中監聽自定義的TCP、UDP協議。
* [swPromise](https://github.com/coooold/swPromise) swPromise 基于swoole的PHP promise框架
* [zys](https://github.com/qieangel2013/zys)基于Yaf和Swoole的i高性能Service框架
* [Laravoole](https://github.com/garveen/laravoole) Laravel和Swoole結合的超高性能框架
* [LaravelFly](https://github.com/scil/LaravelFly) Laravel結合swoolel
* [stone](https://github.com/StoneGroup/stone) 基于swoole,能大幅提升基于Laravel的程序性能
* [MyQEE-Server](https://github.com/myqee/server) MyQEE-Server 將swoole服務和功能對象抽象化,為每個 Worker、Task、多端口分配一個對象,帶來全新的編程體驗讓代碼清晰有條理,適合多端口以及Http、WebSocket、Tcp混合的應用服務器開發,支持創建大文件、斷點、分片上傳的Http服務器
* [PtWebserver](https://git.oschina.net/pantian/PtWebserver) PtWebserver 基于php swoole 擴展的高性能web 服務器。應用對象常駐內存,不用重復創建對象,提高響應時間與性能
* [EPServer](https://github.com/ewenlaz/epserver) EPServer 高性能TCP服務器框架,底層基于swoole擴展
* [php-webserver](https://github.com/matyhtf/php-webserver) 基于swoole+http_parser2個擴展開發的高性能PHP web服務器。壓測性能超過php-fpm的2倍
* [think-swoole](https://github.com/top-think/think-swoole) ThinkPHP 5.0 Swoole 擴展
* [queueSwoole](https://github.com/kcloze/queueSwoole) 基于swoole的微型框架,適合于高并發場景下的搶購/秒殺業務場景
* [Phwoolcon](https://github.com/phwoolcon/phwoolcon) Phalcon結合Swoole的高性能框架
* [swoft](https://github.com/stelin/swoft) swoft是基于swoole協程2.x的高性能PHP微服務框架,內置http服務器。框架全協程實現,性能優于傳統的php-fpm模式。
* [Group](https://github.com/fucongcong/Group) 基于swoole實現了定時任務功能,分布式任務隊列,命令行控制臺,數據庫腳本自動化,單元測試, rpc服務,多進程服務
* [swoole-laravel-framework](https://github.com/chongyi/swoole-laravel-framework) 構建于 swoole 之上的 laravel 框架
* [yii2-swoole](https://github.com/lscgzwd/yii2-swoole) yii2 run with swoole
* [lumoon](https://github.com/silentred/lumoon) 結合 Lumen 和 Swoole
* [swala](https://github.com/ChieveiT/swala) Swoole & Laravel
* [slim-swoole](https://github.com/kcloze/slim-swoole) slim結合swoole
* [SwooleDistributedWeb](https://github.com/jianghua/SwooleDistributedWeb) swoole 分布式全棧框架 web開發增強版,基于SwooleDistributed
* [CatApi](https://github.com/CatsSystem/CatApi) 全異步Swoole Http API開發框架,內置Promise,異步MySQL連接池,內存緩存管理,異步Task方案等
## 工具
* [swoole-crontab](https://github.com/osgochina/swoole-crontab) 基于swoole的定時器程序,支持秒級處理. 異步多進程處理。完全兼容crontab語法,且支持秒的配置
* [redis-async](https://github.com/swoole/redis-async) 基于swoole開發的異步Redis+連接池,性能非常強勁。使用redis-async開發的Web應用,QPS可以高達3.5萬QPS,超過php-fpm+php-redis擴展性能的10倍。
* [mysql-async](https://github.com/swoole/mysql-async) 基于swoole擴展開發的異步MySQL類庫,內置連接池和SQL任務排隊機制
* [multiprocess](https://github.com/kcloze/multiprocess) multiprocess 基于swoole的進程管理組件,可輕松讓普通PHP腳本變守護進程和多進程執行
* [DHT](https://github.com/ylqjgm/DHT) DHT 使用swoole編寫的DHT爬蟲程序,可正常獲取infohash
* [swoole-vmstat](https://github.com/smalleyes/swoole-vmstat) swoole-vmstat 運用swoole在瀏覽器更友好的實現vmstat
* [swoole-server-manager](https://github.com/df007df/swoole-server-manager) swoole-server-manager 常駐服務管理框架
* [statistics](https://github.com/smalleyes/statistics) 一個運用php與swoole實現的統計監控系統
* [Sworm](https://github.com/heikezy/Sworm) 基于Swoole的異步MySQL數據庫ORM框架
* [real-time-pad](https://github.com/zhaohehe/real-time-pad) A really-real time collaborative word processor
* [mysql-proxy](https://github.com/swoole/mysql-proxy) PHP程序員也能參與的MySQL中間件項目
## 分布式
* [SwooleDistributed](https://github.com/tmtbe/SwooleDistributed) swoole 分布式全棧框架框架
* [swoole-task](https://github.com/luxixing/swoole-task) 是基于PHP swoole擴展開發的一個異步多進程任務處理框架,服務端和客戶端通過http協議進行交互。它適用于任務需要花費較長時間處理,而客戶端不必關注任務執行結果的場景.比如數據清洗統計類的工作,報表生成類任務
* [php-msf](https://github.com/pinguo/php-msf) 基于Swoole的工程級企業微服務框架,承載Camera360億級用戶訪問量,穩定,高性能,簡單。Yield協程,無內存泄露(對象池),內置請求上下文,請求鏈,Redis連接池、MySQL連接池、Redis集群中間件,RPC等
* [swoole-jobs](https://github.com/kcloze/swoole-jobs) 基于swoole的job調度組件
* [DFS](https://github.com/qieangel2013/dfs) DFS 分布式文件服務器
* [DoraRPC](https://github.com/xcl3721/Dora-RPC) Dora RPC 是一款基礎于Swoole定長包頭通訊協議的最精簡的RPC, 用于復雜項目前后端分離,分離后項目都通過API工作可更好的跟蹤、升級、維護及管理。
* [swoole-JsonRPC](https://github.com/smalleyes/swoole-JsonRPC) swoole簡單實現jsonRPC
* [hprose-swoole](https://github.com/hprose/hprose-swoole) Hprose for Swoole
* [syar](https://github.com/stcer/syar) swoole實現的yar服務
**如果你有好的開源項目需要展示,歡迎提交PR**
- swoole簡介
- swoole功能概述
- 序章
- 開發必讀
- 1 環境搭建
- 1.1 環境搭建
- 1.2 搭建Echo服務器
- 2 初識Swoole
- 2.1 Worker進程
- 2.2 TaskWorker進程
- 2.3 Timer定時器
- 2.4 Process進程
- 2.5 Table內存表
- 2.6 多端口監聽
- 2.7 sendfile文件支持
- 2.8 SSL支持
- 2.9 熱重啟
- 2.10 http_server
- 附錄*server配置
- 附錄*server函數
- 附錄*server屬性
- 附錄*server回調函數
- 附錄*server高級特性
- 心跳檢測
- 3 Swoole協議
- 3.1 EOF協議
- 3.2 固定包頭協議
- 3.3 Http協議
- 3.4 WebSocket協議
- 3.5 MTQQ協議
- 內置http_server
- 內置websocket_server
- Swoole\Redis\Server
- 4 Swoole異步IO
- 4.1 AsyncIO
- 異步文件系統IO
- swoole_async_readfile
- swoole_async_writefile
- swoole_async_read
- swoole_async_write
- 5 swoole異步客戶端
- ws_client
- http_client
- mysql_client
- redis_client
- tcp_client
- http2_client
- 6 swoole協程
- Swoole\Coroutine\Http\Client
- Swoole\Coroutine\MySQL
- Swoole\Coroutine\Redis
- Coroutine\PostgreSQL
- Swoole\Coroutine\Client
- Swoole\Coroutine\Socket
- Swoole\Coroutine\Channel
- Coroutine
- Swoole\Coroutine::create
- Swoole\Coroutine::resume
- Swoole\Coroutine::suspend
- Swoole\Coroutine::sleep
- Coroutine::getaddrinfo
- Coroutine::gethostbyname
- swoole_async_dns_lookup_coro
- Swoole\Coroutine::getuid
- getDefer
- setDefer
- recv
- Coroutine::stats
- Coroutine::fread
- Coroutine::fget
- Coroutine::fwrite
- Coroutine::readFIle
- Coroutine::writeFIle
- Coroutine::exec
- 7 swoole_process
- process::construct
- process::start
- process::name
- process::signal
- process::setaffinity
- process::exit
- process::kill
- process::daemon
- process->exec
- process::wait
- process::alarm
- 8 swoole定時器
- swoole_timer_tick
- swoole_timer_after
- swoole_timer_clear
- 9 swoole_event
- swoole_event_add
- swoole_event_set
- swoole_event_del
- swoole_event_wait
- swoole_event_defer
- swoole_event_write
- swoole_event_exit
- swoole提供的function
- 常見問題
- 客戶端鏈接失敗原因
- 如何設置進程數
- 如何實現異步任務
- 如何選擇swoole三種模式
- php中哪些函數是阻塞的
- 是否可以共用1個redis或mysql連接
- 如何在回調函數中訪問外部的變量
- 為什么不要send完后立即close
- 不同的Server程序實例間如何通信
- MySQL的連接池、異步、斷線重連
- 在php-fpm或apache中使用swoole
- 學習Swoole需要掌握哪些基礎知識
- 在phpinfo中有在php-m中沒有
- 同步阻塞與異步非阻塞選擇
- CURL發送POST請求服務器端超時
- 附錄
- 預定義常量
- 內核參數調優
- php四種回調寫法
- 守護進程程序常用數據結構
- swoole生命周期
- swoole_server中內存管理機制
- 使用jemalloc優化swoole內存分配性能
- Reactor、Worker、Task的關系
- Manager進程
- Swoole的實現
- Reactor線程
- 安裝擴展
- swoole-worker手冊
- swoole相關開源項目
- 寫在后面的話
- 版本更新記錄
- 4.0