{"id":15014348,"url":"https://github.com/helyho/voovan","last_synced_at":"2025-04-06T09:09:22.932Z","repository":{"id":31274720,"uuid":"34836584","full_name":"helyho/Voovan","owner":"helyho","description":"Voovan是高性能异步通信、HTTP服务器和客户端通信、动态编译支持、数据库操作帮助类等工具的框架, 如果项目觉得不错, 请点一下 star, 谢谢","archived":false,"fork":false,"pushed_at":"2023-12-18T11:05:12.000Z","size":20252,"stargazers_count":272,"open_issues_count":1,"forks_count":68,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-04-06T09:09:16.516Z","etag":null,"topics":["java","netty","nio","tls","voovan-web","webserver","websocket"],"latest_commit_sha":null,"homepage":"http://www.voovan.org","language":"Java","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/helyho.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-04-30T05:47:26.000Z","updated_at":"2025-02-24T06:29:53.000Z","dependencies_parsed_at":"2024-09-30T08:00:44.277Z","dependency_job_id":"0bb84517-b220-49c6-b2a6-d911cba6b01d","html_url":"https://github.com/helyho/Voovan","commit_stats":{"total_commits":3726,"total_committers":7,"mean_commits":532.2857142857143,"dds":"0.0037573805689747886","last_synced_commit":"cddf4e8d5d3976db84921890ecc0f6c8e7c67e5d"},"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helyho%2FVoovan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helyho%2FVoovan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helyho%2FVoovan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helyho%2FVoovan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/helyho","download_url":"https://codeload.github.com/helyho/Voovan/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247457803,"owners_count":20941906,"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","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":["java","netty","nio","tls","voovan-web","webserver","websocket"],"created_at":"2024-09-24T19:45:30.475Z","updated_at":"2025-04-06T09:09:22.902Z","avatar_url":"https://github.com/helyho.png","language":"Java","readme":"![](http://git.oschina.net/uploads/images/2016/0510/122514_7d971a34_116083.jpeg)\n\n[![](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html)\n[![](https://jitpack.io/v/helyho/Voovan.svg)](https://jitpack.io/#helyho/Voovan)\n[![](https://maven-badges.herokuapp.com/maven-central/org.voovan/voovan-framework/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.voovan/voovan-framework)\n![JDK 1.7](https://img.shields.io/badge/JDK-11-green.svg \"JDK 11\")\n[![jar size 830K](https://img.shields.io/badge/size-830K-green.svg \"size 830K\")](https://git.oschina.net/helyho/Voovan/raw/master/voovan-framework.jar)\n\n\nVoovan 是一个高性能异步网络框架和WEB服务器框架,同时支持HTTP客户端抓取、动态编译支持、数据库访问封装以及DateTime、String、Log、反射、对象工具、流操作、文件操作、异步双向通道等功能。旨在提供可靠、方便、可单元测试的代码。它是极少依赖的独立工具包，希望能够方便广大开发者快速的实现应用。\n\n**开源协议:**  Apache v2 License\n\n**极简并且优雅的编码是 Voovan 的宗旨和目标**\n\n---------------------\n\n| 传送门           | 链接                                                                                                                          |\n| ---------------- | ----------------------------------------------------------------------------------------------------------------------------- |\n| **外媒新闻**     | [Naked Performance With Clojure](https://www.slideshare.net/metosin/naked-performance-with-clojure)  重点在第七页             |\n| **TFB 性能测试** | [Round 19](https://www.techempower.com/benchmarks/#section=data-r19\u0026hw=ph\u0026test=json) [2019-10-24](https://www.techempower.com/benchmarks/#section=test\u0026runid=59583d86-f7b6-4e86-b86a-a7e8eebf89fb\u0026hw=ph\u0026test=json) |\n| **文档入口**     | [Voovan 开发手册](http://www.voovan.org/doc/#/Document/v4/)                                                                   |\n| **入门教程**     | [Voovan 一步步入门](http://www.voovan.org/doc/#/Turorial/v4/)                                                                 |\n\n---------------------\n| 联系我们      | 链接                                                                                              |\n| ------------- | ------------------------------------------------------------------------------------------------- |\n| **QQ Group:** | 454201740                                                                                         |\n| **Email:** | helyho@gmail.com                                                                                         |\n| **Issues**    | [GitHub](https://github.com/helyho/Voovan/issues) \n\n---------------------\n\n**Maven中央库支持:**\n  ```xml\n    \u003cdependency\u003e\n        \u003cgroupId\u003eorg.voovan\u003c/groupId\u003e\n        \u003cartifactId\u003evoovan-framework\u003c/artifactId\u003e\n        \u003cversion\u003e4.3.8\u003c/version\u003e\n    \u003c/dependency\u003e\n  ```\n\n**JitPack仓库支持:**\n- 最新版请跟进 `jitpack` 仓库\n  ```xml\n    \u003crepositories\u003e\n        \u003crepository\u003e\n            \u003cid\u003ejitpack.io\u003c/id\u003e\n            \u003curl\u003ehttps://jitpack.io\u003c/url\u003e\n        \u003c/repository\u003e\n    \u003c/repositories\u003e\n\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecom.github.helyho.Voovan\u003c/groupId\u003e\n        \u003cartifactId\u003evoovan-framework\u003c/artifactId\u003e\n        \u003cversion\u003ee1c501439b\u003c/version\u003e\n    \u003c/dependency\u003e\n  ```\n\n---------------------\n**Web模块:**\n  - WebServer 对注解形式路由的支持, 类似一个轻量化的 Spring MVC\n  - WebServer 增加热部署支持, 修改类和 jar 中的类,无须重启 web 服务\n  - WebServer 增加扫描新类和 jar 到 ClassPath 的支持,新增类和 jar 无须重启 web 服务\n  - WebServer 路径变量抽取算法优化, 以获得性能提升\n  - WebServer 实现基于 redis 的 session 共享形式的集群\n  - WebServer 提供对基于 Websocket 协议的 socket.io 和 engine.io 的支持\n\n**Network 模块:**\n  - 提高了 Voovan 对于并发性能的支持,测试结果并发性能提升为10%-15%\n  - 优化ByteBufferChannel增加 shrink \\ read \\ write 的通用方法\n  - IoSession 的状态模型重构\n  - 增加心跳控制\n\n**Common 模块:**\n  - 新增时间轮定时任务,并且支持异步任务的方式,Voovan 内部所有定时器全部都替换为时间轮的方式,以提升性能\n  - 增加了动态编译以及沙盒对于加载类的安全控制\n\n\n        - 动态类的的支持,参见:org.voovan.tools.compiler.clazz.DynamicClass\n        - 动态函数的的支持,参见:org.voovan.tools.compiler.function.DynamicFunction\n        - 动态编译部分的沙盒安全支持: /Voovan/Common/src/main/resources/sandbox.properties\n\n\n  - 提供通用的热部署支持,使任何 JVM 应用都能够支持热部署, 参见: org.voovan.tools.hotswap.Hotswaper\n\n---------------------\n **典型案例:**\n - 商旅行业酒店预订系统,基于 Voovan 开发的后端API服务\n - 基于 Voovan 开发物联网管理服务\n - 基于 Voovan 开发的游戏后端服务\n - 基于 Voovan 开发的 WEB 服务以及手机推送服务\n - 某通信企业基于 Voovan开发每分钟通信 10w+ 次的关口机\n - Vestful 一款提供 Restful 服务的框架\n - Dockerfly 一款 Docker web 管理工具\n - JDocker 一款 java 开发 Docker API 封装的框架\n - 某区块链交易所后端所有服务都基于 Voovan 运行, 以稳定运行一年半(截至2020年4月)\n\n---------------------\n** Voovan 相关新闻 **\n\n| 日期       | 标题                                                                                      |\n| ---------- | ----------------------------------------------------------------------------------------- |\n| 2017-06-28 | [t-io 和 Voovan 并发性能测试](https://my.oschina.net/helyho/blog/1068640)                 |\n| 2017-06-02 | [Netty、t-io、Voovan 框架浅谈](https://my.oschina.net/helyho/blog/919465)                 |\n| 2017-02-21 | [Netty与Voovan并发性能对比](https://my.oschina.net/helyho/blog/853755)                    |\n| 2017-01-04 | [Voovan 参照 Jetty 的性能测试](http://www.oschina.net/news/80665/voovan-performance-test) |\n\n---------------------\n\n\n\n **JDK支持:**\n\n - 推荐使用 JDK11,懒人专用。\n - 目前自 *4.3.8* 开始所有版本在发布前都会进行 jdk11的测试。\n - 如果 WebServer 使用lambda 需要 JDK11,不使用 lambda 需要 JDK1.7。\n - 有能力的同学可以通过很简单几行修改使 WebServer 和 HTTPClient使用 NIO 那么就是 JDK1.6。\n\n---------------------\n\n **框架特点介绍:**\n - 使用 JDK 的 lambda 表达式,快速实现 HTTP/WebSocket 服务的开发。[【演示】](http://webserver.voovan.org/)/[【TFB性能测试】](https://www.techempower.com/benchmarks/#section=test\u0026runid=59583d86-f7b6-4e86-b86a-a7e8eebf89fb\u0026hw=ph\u0026test=json)\n - 异步通信框架解决粘包问题,过滤器链等。\n - 独立无依赖的代码。\n - 源码注释丰富，方便码友学习、调试、使用。\n\n---------------------\n\n **一、高性能异步通信(NIO异步通信) [voovan-network]**\n\n  类似 Netty 和 MINA 的异步 Socket 通信框架.但有有所不同。\n  1. **可灵活解决Socket通信粘包的支持**（源码中包含 HTTP协议,字符串换行,定长报文的粘包实现）。\n  2. **支持 SSL/TLS 加密通信。**\n  3. **提供线程池依据系统负载情况自动动态调整。**\n  4. 采用非阻塞方式的异步传输。\n  5. 事件驱动(Connect、Recive、Sent、Close、Exception)，采用回调的方式完成调用。\n  6. **可灵活的加载过滤器机制。**\n\n---------------------\n\n **二、HTTP客户端和WEB服务器[voovan-web]**\n **HTTP客户端特性:**\n  1. 基于 Voovan 异步通信框架实现。\n  1. 客户端可以灵活自定义请求报文。\n  1. 同步实现 HTTP请求(需要同步实现可参考)。\n  1. 实现 WebSocket 客户端调用,可以连接任何支持 **WebSocket Version 13**的 WebSocket 服务。\n\n\n\n **WEB服务器特性:[voovan-web]**\n  1. 支持 **WebSocket Version 13**，并且保持 WebSocket请求参数。\n  1. **使用 Lambda 实现更加方便的 Http 响应实现。**\n  1. **支持路径参数自动抽取**  当路径定义/:name,在使用/jonh地址访问时，可以通过 name 参数获取 jonh 字符串。\n  1. 重定向支持。\n  1. 可灵活实现session共享。\n  1. **异常统一展示**支持。\n  1. MIME 配置支持。\n  1. 支持基于 HTTP1.1 的 HTTPS 访问,默认采用TLS模式.\n  1. 支持性能监控.  [[HTTP服务端性能监控演示](http://webserver.voovan.org/VoovanMonitor/Monitor.html)]\n\n---------------------\n\n**三、动态编译支持 [voovan-common]**\n\n  在内存中编一个保存有 java 代码的字符串,并将编译后的 byte 字节加入到 classloader 中,可灵活的动态定义类和使用。\n\n---------------------\n\n**四、数据库操作帮助类 [voovan-database]**\n提供类似Spring JDBCTemplate 的数据访问支持，但提供了更好更灵活易用的函数设计。\n - 支持的参数类型:\n  - Map 参数\n  - 不定参数\n  - 对象作为参数\n - 支持存储过程调用。\n - 支持批量更新。\n - 数据库事务的支持。\n - 支持自动移除无匹配参数的条件。\n - 结果转换对象的时候使用模糊匹配。\n\n---------------------\n\n **五、DateTime、String、Log、反射、对象工具、流操作、文件操作、异步双向通道等 [voovan-common]**\n\n  1. 简单的 JSON 序列化和反序列化,效率比不过专业的序列化工具(如:FastJson),但重在轻量级好用。\n  1. 日期类型和字符串和日期类型互转,日期类型加减操作。\n  1. 反射的快捷实现,可直接通过反射取属性值,调用方法,实例化对象,**判断类的继承及实现**。\n  1. 简单的日志记录类,支持指定输出流,日志报文自定义等。\n  1. 简单的**自推导的对象类型强制转换**,根绝参数类型,运算类型自动退定强制转换类型。\n  1. 流操作,读取定长、按行读取、**基于byte的split操作**等。\n  1. 使用 ByteBuffer 实现的一个双向通道。\n  1. 属性文件操作。\n  1. 文件路径拼接、从绝对路径读取、从相对路径读取、从包路径读取、指定起始和结束位置内容读取等。\n  1. List 和 Map 的快速初始化。\n  1. 热部署\n  1. 动态函数和类\n\n---------------------\n\n**包结构说明**\n\n| 包名                       |      名称      |\n| -------------------------- | :------------: |\n| org.voovan.db              |  数据库操作类  |\n| org.voovan.http            |   HTTP工具包   |\n| org.voovan.dynamicComplier |   动态编译包   |\n| org.voovan.network         | 网络异步通信包 |\n| org.voovan.tools           |   基本工具包   |\n\n---------------------","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhelyho%2Fvoovan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhelyho%2Fvoovan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhelyho%2Fvoovan/lists"}