# TurboWeb **Repository Path**: tree23/turboweb ## Basic Information - **Project Name**: TurboWeb - **Description**: TurboWeb 是一款专为现代高并发场景打造的轻量级 Web 开发引擎。它基于 Netty 构建,原生支持虚拟线程调度,拥抱同步编程模型的同时,具备近似异步模型的吞吐能力。无论是对大规模连接的稳定支撑,还是超高并发请求的顺滑处理,TurboWeb 都能提供可靠、可控的表现。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://gitee.com/turboweb/turboweb - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 14 - **Created**: 2025-10-17 - **Last Updated**: 2025-10-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

![Gitee Stars](https://gitee.com/turboweb/turboweb/badge/star.svg?theme=dark) ![Forks](https://gitee.com/turboweb/turboweb/badge/fork.svg?theme=dark) ![License](https://img.shields.io/badge/License-Apache--2.0-red)



> 你还在纠结“同步代码写得爽”还是“异步框架性能强”? > > **别选了,全都要!** > > **TurboWeb** —— 用同步的姿势,干掉异步的活儿! > **使用案例: 飞廉管理系统** > > 仓库地址: https://gitee.com/project-development_6/feilian ## TurboWeb是什么? **TurboWeb** 是一个现代、高性能、无废话的 Java Web 框架,底层基于 Netty,核心依托 **JDK 21 虚拟线程(Loom)**,为高并发场景而生。它不仅运行得飞快,还写得极爽—— 你写的,是再普通不过的同步 Java 代码; 你收获的,是让异步框架都汗颜的吞吐性能。 不再需要回调、响应式、链式 API,也不必掌握 Mono、Flux 或什么“编排式编程”——只要用好一个 `HttpContext`,剩下的,都交给 TurboWeb。 ## 为什么选择TurboWeb? **_同步开发体验,异步级性能_** TurboWeb 全面基于 **虚拟线程** 执行请求处理,不再使用传统线程池。每个请求拥有独立线程,上万并发依旧从容,开发体验丝滑如春风。 **_中间件驱动的灵活架构_** TurboWeb 拒绝内置臃肿,所有功能都以中间件形式插件化集成:跨域处理、限流、模板渲染、甚至是 controller 本身,都是中间件。你只引入你用到的,它就只干你想干的。 **_长连接原生支持_** WebSocket 与 SSE 原生集成,无需第三方依赖即可构建 IM、推送、实时控制等高连接数应用,底层生命周期由 Netty 驱动,性能轻盈又稳定。 **_极简路由与控制器_** 使用注解声明路由,所有控制器方法的参数统一为 `HttpContext`,你拥有 100% 控制权。框架通过**方法句柄**(非反射)进行方法调用,性能与手写代码无异。 **_去中心化服务间通信_** TurboWeb 不依赖传统中心化网关。通过“服务间路由共享”,每个节点都可以对外暴露接口,轻松构建更加**去中心化、弹性更强**的微服务架构。 **_文件下载的稳定支持_** TurboWeb在进行文件下载的时候,可以实现零拷贝传输而不阻塞Netty的IO线程,同时仍保留 伪异步 I/O 模式 作为稳定性补充,在磁盘 I/O 波动或特殊场景下可切换使用,确保文件下载在高并发环境下依然流畅稳定。 **_最简启动,极速响应_** 无需 XML,无需注解扫描,几行代码即可跑通请求流程。框架启动只需百毫秒,占用几十 MB,适合快速开发、小型部署,也适合重型分布式集群服务。 **TurboWeb**,不只是一个框架,更是一种**”用同步思维写异步应用”**的全新范式。 准备好了吗? 是时候用同步代码迎接高并发挑战, 和 TurboWeb 一起,重构你的 Web 开发体验。 ## TurboWeb 2.2.x 预更新特性 > 以下特性预计在2.2.x版本引入。 1. **简洁的 HTTP 客户端**:基于 `reactor-netty` 构建,提供类似 **Axios** 的调用风格,提升易用性和开发效率。 2. **新增注解 `@Route`**: 与 `@RequestPath` 作用一致,提供更简洁的路由声明方式。 3. **声明式路由管理器升级**:对参数的自动注入功能进行增强,高度解耦,支持动态添加参数封装与解析方式。 4. **统一路径前缀支持**:声明式路由管理器可统一设置路径前缀,减少重复定义。 5. **静态资源处理中间件重构**:支持 **Range 传输**(断点续传、分块请求),支持直接映射磁盘文件,提高静态资源访问性能。 6. **新增两个特殊中间件**:版本控制中间件(可根据不同逻辑选择不同的路由管理器),分支中间件(支持基于条件动态选择分支,并最终合并回主分支)。 7. **嵌入式网关增强**:提供更加规范化的配置方式,优化中转性能,计划引入对 **WebSocket** 的支持。 ## 新特性 **_1.三级限防护流体系_** 为确保系统在高并发场景下依然稳定运行,TurboWeb 构建了 三级限流防护体系: 连接数限流(第一道防线):动态监控全局连接数,一旦超过阈值,自动拒绝新连接,保障核心业务可用性。 调度器并发缓冲(第二道防线):在请求调度阶段限制最大并发数;达到上限时优先挂起虚拟线程,超过挂起阈值则直接拒绝请求,避免线程风暴。 中间件速率控制(第三道防线):通过可插拔的中间件实现请求速率限制,灵活适配不同业务需求。 **_2.响应式流原生适配_** 全面支持 Mono、Flux 等响应式流对象。 用户只需返回流式结果,框架会自动进行响应适配与分块传输。 **_3.零拷贝支持_** 对 Netty NioSocketChannel 进行增强,在触发零拷贝时: 自动挂起该连接的后续写操作,将文件传输委托给独立的零拷贝线程池。 传输完成后再恢复后续写入,避免 IO 线程阻塞。 这种设计兼顾了零拷贝的高性能和 IO 线程的极低延迟。 **_4.控制器参数自动注入_** 通过 AnnoRouterManager 构造器即可启用 参数自动注入模式: 控制器方法不再强制依赖 HttpContext,可直接使用 @Query、@Param、@JsonModel 等注解声明所需参数。 框架在运行前将反射逻辑预编译为高效的 Lambda 调用,参数封装几乎无性能损耗。 **_5.完全自定义响应_** 新增 IgnoreHttpResponse 响应类型: 当该对象到达 HttpScheduler 时,框架将忽略默认响应处理流程。 开发者可直接基于 连接会话编写完全自定义的输出逻辑,满足特殊协议、分布式推送、长连接传输等场景需求。 ## 整合SpringBoot TurboWeb提供了与SpringBoot的整合包,详细教程看如下仓库: [TurboWeb-SpringBoot](https://gitee.com/turboweb/turboweb-springboot) ## 目录 [快速入门——第一个“Hello World”](./docs/quickstart.md) [路由体系](./docs/router.md) [请求数据的处理](./docs/request.md) [响应数据的处理](./docs/response.md) [文件的上传和下载](./docs/file.md) [异常处理器](./docs/exceptionhandler.md) [中间件的使用](./docs/middleware.md) [拦截器的使用](./docs/interceptor.md) [静态资源的支持](./docs/staticresource.md) [模板技术的支持](./docs/template.md) [运行信息的获取](./docs/serverinfo.md) [Cookie](./docs/cookie.md) [Session](./docs/session.md) [Server-Sent Events](./docs/sse.md) [WebSocket](./docs/websocket.md) [嵌入式网关](./docs/gateway.md) [监听器](./docs/listener.md) [服务器参数配置](./docs/config.md) [三级限流保护体系](./docs/limiter.md) ## 联系我们 QQ 群:154319949