Feat 是一个高性能 Java Web 服务框架,开发体验近似 SpringBoot,运行性能超越 Vert.x。并且,Feat 以 AI 原生 和 云原生 双引擎驱动,支持 HTTP/1.0、1.1、2.0、WebSocket、SSE、TLS/SSL 等现代 Web 技术,内置路由、文件上传、WAF 等丰富功能。
诞生
根据官方文档介绍,Feat 并非横空出世,它的诞生承载着长达六年的开源经验和技术沉淀。它的前身是广受好评的开源网络通信框架 smart-http,该项目在社区中经历了无数次实战检验,积累了宝贵的经验。
当 smart-http 发展至稳定和成熟的阶段后,其作者做出了一个充满远见的战略决策:将 smart-http 交由社区维护,以保障现有用户的稳定使用;同时,倾注全部心力,启动一个能够挣脱历史束缚、自由实践前瞻性技术理念的全新项目——Feat。
性能
Feat 的性能基石,是其底层依赖的成熟 AIO 网络通信框架 smart-socket。基于 Java AIO (NIO.2) 构建,smart-socket 赋予了 Feat 强大的异步、非阻塞处理能力,使其能够以极低的资源开销轻松应对万级并发连接。
官方提供的性能对比如下:
指标 |
Feat |
Spring Boot |
Vert.x |
---|---|---|---|
启动时间 | <100ms |
~700ms |
~500ms |
内存占用 | 低 |
高 |
中 |
每秒请求数 | 高 |
中 |
高 |
响应延迟 | 极低 |
中 |
低 |
最新版本的 Feat 性能又得到了较大进步:
这是作者最新版本介绍中提供的数据:
拥抱 AI 和云原生
Feat “AI 原生 × 云原生”双轮驱动:
-
AI 原生 (feat-ai):Feat 预见到 AI 将是未来应用的标配。因此,feat-ai 模块原生集成了对 Gitee AI(模力方舟) 的 Chat 与 Embedding 模型的能力。开发者无需复杂的配置和封装,就能轻松地在自己的应用中集成强大的大语言模型能力,快速构建智能问答、内容生成、语义搜索等 AI 驱动的功能。
-
云原生 (feat-cloud):Feat 的轻量化设计、弹性能力以及对 AOT 的支持,都是其云原生基因的体现。它旨在最大化地利用云平台的优势,帮助开发者构建启动更快、占用资源更少、响应更敏捷的云原生应用。
上手体验
引入 Feat:
<dependency>
<groupId>tech.smartboot.feat</groupId>
<artifactId>feat-core</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>tech.smartboot.feat</groupId>
<artifactId>feat-cloud-starter</artifactId>
<version>1.2.2</version>
</dependency>
下面通过一个简单的示例,以检验 Feat 是否成功引入,并演示如何快速启动一个 Web 服务。
publicclassHelloFeat{
publicstaticvoidmain(String[] args){
Feat.httpServer().listen();
}
}
启动上面的程序后,运行效果:
hello world
现在我们再来写一个自定义的响应的服务,并指定服务端端口为 8081。
publicclassHelloWorld{
publicstaticvoidmain(String[] args){
Feat.httpServer()
.httpHandler(request -> request.getResponse().write("Hello World"))
.listen(8081);
}
}
启动上面的程序后,运行效果:
hello world
总结
Feat 采用了 AGPL 协议,在遵循该开源协议的前提下,你可以自由地使用 Feat 开发 Web 服务。如果企业需要商用的话,需要付费获得 Feat 的商业授权。
这种项目目前只适合作为个人学习使用,如果是企业的话,还是要选择 Spring Boot 、Quarkus 等生态好的 Web 框架。不过,在这里也希望国产开源项目发展越来越好。
-
项目地址:https://gitee.com/smartboot/feat
-
官网:https://smartboot.tech/feat/