{"id":34629165,"url":"https://github.com/esd-projects/esd-server","last_synced_at":"2025-12-24T16:33:31.170Z","repository":{"id":56979238,"uuid":"182610180","full_name":"esd-projects/esd-server","owner":"esd-projects","description":"⚡️ EasySwoole Distributed","archived":false,"fork":false,"pushed_at":"2019-06-27T05:32:03.000Z","size":659,"stargazers_count":254,"open_issues_count":4,"forks_count":14,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-11-27T14:56:30.307Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.kancloud.cn/tmtbe/goswoole/1067764","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/esd-projects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-04-22T02:37:20.000Z","updated_at":"2025-09-11T17:48:40.000Z","dependencies_parsed_at":"2022-08-21T08:10:58.535Z","dependency_job_id":null,"html_url":"https://github.com/esd-projects/esd-server","commit_stats":null,"previous_names":[],"tags_count":37,"template":false,"template_full_name":null,"purl":"pkg:github/esd-projects/esd-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esd-projects%2Fesd-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esd-projects%2Fesd-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esd-projects%2Fesd-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esd-projects%2Fesd-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/esd-projects","download_url":"https://codeload.github.com/esd-projects/esd-server/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esd-projects%2Fesd-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28004719,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-24T02:00:07.193Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-12-24T16:33:29.430Z","updated_at":"2025-12-24T16:33:31.157Z","avatar_url":"https://github.com/esd-projects.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"#  EasySwooleDistributed\n\n\n[![Latest Version](https://img.shields.io/github/release/esd-projects/esd-server.svg)](https://github.com/esd-projects/esd-server/releases)\n[![Php Version](https://img.shields.io/badge/php-%3E=7.1-brightgreen.svg?maxAge=2592000)](https://secure.php.net/)\n[![Swoole Version](https://img.shields.io/badge/swoole-%3E=4.3.3-brightgreen.svg?maxAge=2592000)](https://github.com/swoole/swoole-src)\n[![ESD Doc](https://img.shields.io/badge/docs-passing-green.svg?maxAge=2592000)](https://www.kancloud.cn/tmtbe/goswoole/1067764)\n[![ESD License](https://img.shields.io/hexpm/l/plug.svg?maxAge=2592000)](https://github.com/esd-projects/esd-server/blob/master/LICENSE)\n\n**简单，易用，高性能，高扩展性，拥有强大的插件管理和丰富的插件系统，高颜值的PHP协程框架，简称ESD。**\n\n由SwooleDistributed与EasySwoole合作打造最棒的swoole框架。\n\n\n交流群：994811283\n\n![](./screenshots/start.jpg)\n## ✨ 文档地址\nhttps://www.kancloud.cn/tmtbe/goswoole/1067764\n## ✨ 日志系统\n![](./screenshots/log.jpg)\n类似SpringBoot的日志系统，更加清楚的日志展现。\n\n## ⚡️ 插件系统\n![](./screenshots/run.jpg)\n丰富插件库，目前收录了接近30个插件，通过加载组装不同的插件提供更强大的功能。\n```php\n$this-\u003eaddPlug(new EasyRoutePlugin());\n$this-\u003eaddPlug(new ScheduledPlugin());\n$this-\u003eaddPlug(new RedisPlugin());\n$this-\u003eaddPlug(new MysqlPlugin());\n$this-\u003eaddPlug(new AutoreloadPlugin());\n$this-\u003eaddPlug(new AopPlugin());\n```\n加载插件只需要一行代码\n\n## ⚡️ DI与注解\n支持注解，框架提供大量可使用的注解，比如注解路由，注解事务，注解缓存，注解验证等。\n![](./screenshots/rest.jpg)\n```php\n/**\n * @RestController(\"user\")\n * Class CUser\n * @package ESD\\Examples\\Controller\n */\nclass CUser extends Base\n{\n    /**\n     * @Inject()\n     * @var UserService\n     */\n    private $userService;\n\n    /**\n     * @GetMapping(\"login\")\n     * @return string\n     */\n    public function login()\n    {\n    }\n}\n```\n注解不是强制使用的，完全可以不使用注解。框架均提供了常规使用方式。\n## ⚡️ AOP\n完整支持面向切片编程。\n```php\n$this-\u003eaddAspect(new MyAspect);\n```\n![](./screenshots/aspect.jpg)\n```php\n/**\n * @param MethodInvocation $invocation Invocation\n *\n * @Around(\"@execution(ESD\\Plugins\\Mysql\\Annotation\\Transactional)\")\n * @return mixed\n * @throws \\Throwable\n */\npublic function aroundTransactional(MethodInvocation $invocation)\n```\n\n## ⚡️ Tracing 链路追踪\n通过加载Tracing插件可以实现服务链路性能的监控,支持微服务\n![](./screenshots/tracing.png)\n## ⚡️ 分布式与微服务\n提供分布式与微服务的插件组织：\n\nhttps://github.com/esd-cloud\n\n## 目前收录的插件\n* console-plugin https://github.com/esd-projects/console-plugin 控制台插件\n* postgresql-plugin https://github.com/esd-projects/postgresql-plugin postgreSQL插件（由bearlord提供）\n* mqtt-plugin https://github.com/esd-projects/mqtt-plugin MQTT服务器、MQTT客户端、MQTT路由\n* redis-plugin https://github.com/esd-projects/redis-plugin redis插件\n* easyroute-plugin https://github.com/esd-projects/easyroute-plugin 最方便的注解路由插件\n* pack-plugin https://github.com/esd-projects/pack-plugin tcp，ws等自定义协议解析的pack插件\n* tracing-plugin https://github.com/esd-projects/tracing-plugin 链路监控插件\n* aop-plugin https://github.com/esd-projects/aop-plugin 提供AOP支持的插件\n* amqp-plugin https://github.com/esd-projects/amqp-plugin AMQP插件（由李丹阳提供）\n* mysql-plugin https://github.com/esd-projects/mysql-plugin mysql插件\n* annotations-scan-plugin https://github.com/esd-projects/annotations-scan-plugin 扫描注解插件\n* whoops-plugin https://github.com/esd-projects/whoops-plugin whoops插件，http调试用\n* session-plugin https://github.com/esd-projects/session-plugin session插件\n* cache-plugin https://github.com/esd-projects/cache-plugin cache插件,缓存\n* actuator-plugin https://github.com/esd-projects/actuator-plugin actuator插件提供健康检查等框架默认端点服务\n* security-plugin https://github.com/esd-projects/security-plugin 鉴权插件\n* saber-plugin https://github.com/esd-projects/saber-plugin http客户端插件，Saber\n* autoreload-plugin https://github.com/esd-projects/autoreload-plugin 自动reload插件，用于开发\n* validate-plugin https://github.com/esd-projects/validate-plugin 验证插件，提供数据的验证\n* uid-plugin https://github.com/esd-projects/uid-plugin uid插件，长连接用于绑定fd与uid的关系\n* topic-plugin https://github.com/esd-projects/topic-plugin 主题插件，长连接用于发送订阅主题，符合MQTT规范\n* scheduled-plugin https://github.com/esd-projects/scheduled-plugin 定时任务插件\n* phpunit-plugin https://github.com/esd-projects/phpunit-plugin 单元测试插件\n* blade-plugin https://github.com/esd-projects/blade-plugin blade渲染插件\n* csvreader-plugin https://github.com/esd-projects/csvreader-plugin 读取解析csv的插件\n* process-rpc-plugin https://github.com/esd-projects/process-rpc-plugin 进程通讯插件\n* actor-plugin https://github.com/esd-projects/actor-plugin acotr插件\n* wechat-plugin https://github.com/esd-projects/wechat-plugin wechat插件，由lphkxd提供\n* ding-plugin https://github.com/esd-projects/ding-plugin 钉钉插件，由qiuapeng921提供\n* saber-cloud-plugin https://github.com/esd-projects/saber-cloud-plugin 声明试Web客户端，提供微服务访问\n* circuitbreaker-plugin https://github.com/esd-projects/circuitbreaker-plugin 微服务的熔断器插件\n* consul-plugin-plugin https://github.com/esd-projects/consul-plugin consul插件，提供服务注册，选举\n* hashed-wheel-timer-plugin https://github.com/esd-projects/hashed-wheel-timer-plugin 提供延迟队列，由anyhink提供\n\n## Docker运行环境(由anythink提供)\n```\n➜ docker run -it --rm -p 8080:8080 -v $PWD:/data registry.cn-beijing.aliyuncs.com/anythink/esd:latest\n _____ ____  ____    ____              _   _\n| ____/ ___||  _ \\  |  _ \\ _   _ _ __ | |_(_)_ __ ___   ___\n|  _| \\___ \\| | | | | |_) | | | | '_ \\| __| | '_ ` _ \\ / _ \\\n| |___ ___) | |_| | |  _ \u003c| |_| | | | | |_| | | | | | |  __/\n|_____|____/|____/  |_| \\_\\\\__,_|_| |_|\\__|_|_| |_| |_|\\___|\nESD framework Runtime Environment\nversion 1.5 author by anythink\nroot@f41132062911:/data# \n```\ndocker run -it --rm -p 8080:8080 -v $PWD:/data registry.cn-beijing.aliyuncs.com/anythink/esd:latest\n\n请在 ESD 根目录运行容器，否则修改$PWD为代码根路径（windows需要用%cd%替换$PWD），如果修改了端口请把8080 修改为自己使用的端口.\n镜像启动后的目录即挂载到主机的代码目录，注意 Mac 系统无法使用 inotify 热加载功能。\n容器启动后按照安装步骤，运行框架。\n\n## 🍭 性能测试\n 4核8G SSD盘 腾讯云高IO型I2服务器压测,框架压测包含路由\n \nworker_num = 4\n\nswoole  ab压测输出hello 平均 5.9QPS万 \n\nESD框架 ab压测输出hello 平均 3.6QPS万 \n\nSD框架  ab压测输出hello 平均 1.3QPS万 \n\n压测数据来自：A-Smile\n\n## 🖊️ 如何贡献\n\n非常欢迎您对ESD的开发作出贡献！\n\n你可以选择以下方式向ESD贡献：\n\n- [发布issue进行问题反馈和建议](https://github.com/esd-projects/esd-server/issues)\n- 通过Pull Request提交修复\n- 完善我们的文档和例子\n- 提供更多的插件\n\n\n## 📃 开源协议\n\nApache License Version 2.0 see http://www.apache.org/licenses/LICENSE-2.0.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesd-projects%2Fesd-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fesd-projects%2Fesd-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesd-projects%2Fesd-server/lists"}