All Projects → helyho → Voovan

helyho / Voovan

Licence: apache-2.0
Voovan是高性能异步通信、HTTP服务器和客户端通信、动态编译支持、数据库操作帮助类等工具的框架, 如果项目觉得不错, 请点一下 star, 谢谢

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Voovan

Beetlex
high performance dotnet core socket tcp communication components, support TLS, HTTP, HTTPS, WebSocket, RPC, Redis protocols, custom protocols and 1M connections problem solution
Stars: ✭ 802 (+262.9%)
Mutual labels:  websocket, tls, webserver
Embedio
A tiny, cross-platform, module based web server for .NET
Stars: ✭ 1,007 (+355.66%)
Mutual labels:  websocket, webserver
Netcoreserver
Ultra fast and low latency asynchronous socket server & client C# .NET Core library with support TCP, SSL, UDP, HTTP, HTTPS, WebSocket protocols and 10K connections problem solution
Stars: ✭ 799 (+261.54%)
Mutual labels:  websocket, tls
Nico
A HTTP2 web server for reverse proxy and single page application, automatically apply for ssl certificate, Zero-Configuration.
Stars: ✭ 43 (-80.54%)
Mutual labels:  tls, webserver
Blinksocks
A framework for building composable proxy protocol stack.
Stars: ✭ 587 (+165.61%)
Mutual labels:  websocket, tls
Agoo
A High Performance HTTP Server for Ruby
Stars: ✭ 679 (+207.24%)
Mutual labels:  websocket, webserver
Treefrog Framework
TreeFrog Framework : High-speed C++ MVC Framework for Web Application
Stars: ✭ 885 (+300.45%)
Mutual labels:  websocket, webserver
Websocks
A secure proxy based on WebSocket. 一个基于 WebSocket 的代理工具
Stars: ✭ 102 (-53.85%)
Mutual labels:  websocket, tls
Twig
Twig - less is more's web server for golang
Stars: ✭ 98 (-55.66%)
Mutual labels:  websocket, webserver
T Io
解决其它网络框架没有解决的用户痛点,让天下没有难开发的网络程序
Stars: ✭ 1,331 (+502.26%)
Mutual labels:  nio, websocket
Mitmproxy
An interactive TLS-capable intercepting HTTP proxy for penetration testers and software developers.
Stars: ✭ 25,495 (+11436.2%)
Mutual labels:  websocket, tls
Libhv
🔥 比libevent、libuv更易用的国产网络库。A c/c++ network library for developing TCP/UDP/SSL/HTTP/WebSocket client/server.
Stars: ✭ 3,355 (+1418.1%)
Mutual labels:  websocket, webserver
Cppserver
Ultra fast and low latency asynchronous socket server & client C++ library with support TCP, SSL, UDP, HTTP, HTTPS, WebSocket protocols and 10K connections problem solution
Stars: ✭ 528 (+138.91%)
Mutual labels:  websocket, tls
Xray onekey
Xray 基于 Nginx 的 VLESS + XTLS 一键安装脚本
Stars: ✭ 7,012 (+3072.85%)
Mutual labels:  websocket, tls
Gsnova
Private proxy solution & network troubleshooting tool.
Stars: ✭ 509 (+130.32%)
Mutual labels:  websocket, tls
Telegraph
Secure Web Server for iOS, tvOS and macOS
Stars: ✭ 474 (+114.48%)
Mutual labels:  websocket, webserver
Microwebsrv
A micro HTTP Web server that supports WebSockets, html/python language templating and routing handlers, for MicroPython (used on Pycom modules & ESP32)
Stars: ✭ 420 (+90.05%)
Mutual labels:  websocket, webserver
Happychat
基于Netty实现的WebSocket聊天室,支持几万人同时在线聊天
Stars: ✭ 445 (+101.36%)
Mutual labels:  nio, websocket
Webserver
手写简化版Web服务器
Stars: ✭ 89 (-59.73%)
Mutual labels:  nio, webserver
Lophttpd
lots of performance (or lots of porn, if you prefer) httpd: Easy, chrooted, fast and simple to use HTTP server for static content. Runs on Linux, BSD, Android and OSX/Darwin. It's free but if you like it, consider donating to the EFF: https://supporters.eff.org/donate
Stars: ✭ 123 (-44.34%)
Mutual labels:  tls, webserver

JDK 1.7 jar size 720K

Voovan 是一个高性能异步网络框架和WEB服务器框架,同时支持HTTP客户端抓取、动态编译支持、数据库访问封装以及DateTime、String、Log、反射、对象工具、流操作、文件操作、异步双向通道等功能。旨在提供可靠、方便、可单元测试的代码。它是极少依赖的独立工具包,希望能够方便广大开发者快速的实现应用。

开源协议: Apache v2 License

极简并且优雅的编码是 Voovan 的宗旨和目标


传送门 链接
外媒新闻 Naked Performance With Clojure 重点在第七页
TFB 性能测试 Round 19 2019-10-24
文档入口 Voovan 开发手册
入门教程 Voovan 一步步入门

联系我们 链接
QQ Group: 454201740
Email: [email protected]
Issues GitHub Gitee

Maven中央库支持:

  <dependency>
      <groupId>org.voovan</groupId>
      <artifactId>voovan-framework</artifactId>
      <version>4.3.8</version>
  </dependency>

Voovan 4.2.0+ 新特性: - 详情 -

Web模块:

  • WebServer 对注解形式路由的支持, 类似一个轻量化的 Spring MVC
  • WebServer 增加热部署支持, 修改类和 jar 中的类,无须重启 web 服务
  • WebServer 增加扫描新类和 jar 到 ClassPath 的支持,新增类和 jar 无须重启 web 服务
  • WebServer 路径变量抽取算法优化, 以获得性能提升
  • WebServer 实现基于 redis 的 session 共享形式的集群
  • WebServer 提供对基于 Websocket 协议的 socket.io 和 engine.io 的支持

Network 模块:

  • 提高了 Voovan 对于并发性能的支持,测试结果并发性能提升为10%-15%
  • 优化ByteBufferChannel增加 shrink \ read \ write 的通用方法
  • IoSession 的状态模型重构
  • 增加心跳控制

Common 模块:

  • 新增时间轮定时任务,并且支持异步任务的方式,Voovan 内部所有定时器全部都替换为时间轮的方式,以提升性能

  • 增加了动态编译以及沙盒对于加载类的安全控制

    - 动态类的的支持,参见:org.voovan.tools.compiler.clazz.DynamicClass
    - 动态函数的的支持,参见:org.voovan.tools.compiler.function.DynamicFunction
    - 动态编译部分的沙盒安全支持: /Voovan/Common/src/main/resources/sandbox.properties
    
  • 提供通用的热部署支持,使任何 JVM 应用都能够支持热部署, 参见: org.voovan.tools.hotswap.Hotswaper


典型案例:

  • 商旅行业酒店预订系统,基于 Voovan 开发的后端API服务
  • 基于 Voovan 开发物联网管理服务
  • 基于 Voovan 开发的游戏后端服务
  • 基于 Voovan 开发的 WEB 服务以及手机推送服务
  • 某通信企业基于 Voovan开发每分钟通信 10w+ 次的关口机
  • Vestful 一款提供 Restful 服务的框架
  • Dockerfly 一款 Docker web 管理工具
  • JDocker 一款 java 开发 Docker API 封装的框架
  • 某区块链交易所后端所有服务都基于 Voovan 运行, 以稳定运行一年半(截至2020年4月)

** Voovan 相关新闻 **

日期 标题
2017-06-28 t-io 和 Voovan 并发性能测试
2017-06-02 Netty、t-io、Voovan 框架浅谈
2017-02-21 Netty与Voovan并发性能对比
2017-01-04 Voovan 参照 Jetty 的性能测试

JDK支持:

  • 推荐使用 JDK1.8,懒人专用。
  • 目前自2.0.1开始所有版本在发布前都会进行 jdk1.7的测试。
  • 如果 WebServer 使用lambda 需要 JDK1.8,不使用 lambda 需要 JDK1.7。
  • 有能力的同学可以通过很简单几行修改使 WebServer 和 HTTPClient使用 NIO 那么就是 JDK1.6。

框架特点介绍:

  • 使用 JDK8 的 lambda 表达式,快速实现 HTTP/WebSocket 服务的开发。【演示】/【TFB性能测试】
  • 异步通信框架解决粘包问题,过滤器链等。
  • 独立无依赖的代码。
  • 源码注释丰富,方便码友学习、调试、使用。

一、高性能异步通信(NIO异步通信) [voovan-network]

类似 Netty 和 MINA 的异步 Socket 通信框架.但有有所不同。

  1. 可灵活解决Socket通信粘包的支持(源码中包含 HTTP协议,字符串换行,定长报文的粘包实现)。
  2. 支持 SSL/TLS 加密通信。
  3. 提供线程池依据系统负载情况自动动态调整。
  4. 采用非阻塞方式的异步传输。
  5. 事件驱动(Connect、Recive、Sent、Close、Exception),采用回调的方式完成调用。
  6. 可灵活的加载过滤器机制。

二、HTTP客户端和WEB服务器[voovan-web] HTTP客户端特性:

  1. 基于 Voovan 异步通信框架实现。
  2. 客户端可以灵活自定义请求报文。
  3. 同步实现 HTTP请求(需要同步实现可参考)。
  4. 实现 WebSocket 客户端调用,可以连接任何支持 WebSocket Version 13的 WebSocket 服务。

WEB服务器特性:[voovan-web]

  1. 支持 WebSocket Version 13,并且保持 WebSocket请求参数。
  2. 使用 Lambda 实现更加方便的 Http 响应实现。
  3. 支持路径参数自动抽取 当路径定义/:name,在使用/jonh地址访问时,可以通过 name 参数获取 jonh 字符串。
  4. 重定向支持。
  5. 可灵活实现session共享。
  6. 异常统一展示支持。
  7. MIME 配置支持。
  8. 支持基于 HTTP1.1 的 HTTPS 访问,默认采用TLS模式.
  9. 支持性能监控. [HTTP服务端性能监控演示]

三、动态编译支持 [voovan-common]

在内存中编一个保存有 java 代码的字符串,并将编译后的 byte 字节加入到 classloader 中,可灵活的动态定义类和使用。


四、数据库操作帮助类 [voovan-database] 提供类似Spring JDBCTemplate 的数据访问支持,但提供了更好更灵活易用的函数设计。

  • 支持的参数类型:
  • Map 参数
  • 不定参数
  • 对象作为参数
  • 支持存储过程调用。
  • 支持批量更新。
  • 数据库事务的支持。
  • 支持自动移除无匹配参数的条件。
  • 结果转换对象的时候使用模糊匹配。

五、DateTime、String、Log、反射、对象工具、流操作、文件操作、异步双向通道等 [voovan-common]

  1. 简单的 JSON 序列化和反序列化,效率比不过专业的序列化工具(如:FastJson),但重在轻量级好用。
  2. 日期类型和字符串和日期类型互转,日期类型加减操作。
  3. 反射的快捷实现,可直接通过反射取属性值,调用方法,实例化对象,判断类的继承及实现
  4. 简单的日志记录类,支持指定输出流,日志报文自定义等。
  5. 简单的自推导的对象类型强制转换,根绝参数类型,运算类型自动退定强制转换类型。
  6. 流操作,读取定长、按行读取、基于byte的split操作等。
  7. 使用 ByteBuffer 实现的一个双向通道。
  8. 属性文件操作。
  9. 文件路径拼接、从绝对路径读取、从相对路径读取、从包路径读取、指定起始和结束位置内容读取等。
  10. List 和 Map 的快速初始化。
  11. 热部署
  12. 动态函数和类

包结构说明

包名 名称
org.voovan.db 数据库操作类
org.voovan.http HTTP工具包
org.voovan.dynamicComplier 动态编译包
org.voovan.network 网络异步通信包
org.voovan.tools 基本工具包

Voovan 在异步通信的范畴内的同类框架有:

  • t-io: 长连接异步通信框架,提供心跳和连接保持的支持.
  • netty: 老牌异步通信框架和voovan有面对相同的场景, 两者相比的话 voovan 开发更易上手,针对 Socket 通信中粘包的处理 Voovan 提供了更加优雅的方式.

大家可以根据自己的需要适应的场景选择不同框架.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].