你好,我是 Guide。今天上午刷到了一个挺有意思的国产开源项目,分享一下。
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 框架。不过,在这里也希望国产开源项目发展越来越好。