# 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