< 返回版块

xgpxg 发表于 2026-08-03 11:27

最近用Rust写了一个Web框架,因为之前做了多年的Java开发,所以为了能迁移Spring里的一些思想,一是能够简化开发流程,而是能快速集成其他组件。

目前完成了这些功能:

  • 宏路由: 对Auxm做了封装,提供了宏路由,例如#[controller]#[get]#[post]等等
  • IoC + DI:引入容器和依赖注入模式,#[component] / #[config] 提供声明式注入
  • 配置管理 — 支持多 Profile 切换
  • 中间件 — 对Auxm做了封装,支持全局/路径级中间件,内置 CORS、日志、Panic 恢复、统一响应等
  • 请求处理 — JSON / Query / Form / Header 提取器,Multipart 上传,SSE 推送
  • 错误处理 — #[derive(HttpError)] 映射 HTTP 状态码
  • 数据库 — 连接池、#[sql] 宏,兼容MyBatis的XML写法、#[tx] 声明式事务
  • 缓存 — Memory / Sled / Redis 统一 API

项目地址:https://github.com/xgpxg/webr/ 文档地址:https://xgpxg.github.io/webr/

目前还在快速迭代阶段,API可能不稳定,感兴趣的同学也欢迎尝试。

评论区

写评论
作者 xgpxg 2026-08-03 21:13

如果大家更喜欢原生的Web框架,那么跳过这个直接用原生的Axum就好,这个的目的就做集成,争取做到开箱即用,也还在不断调整中。不过看大家都不喜欢Ioc和DI,如果看面有更好的方案也会考虑把这个移除掉。

作者 xgpxg 2026-08-03 21:00

其他都是可选的feature

--
👇
None: 哈哈 我也想说 集成的东西太多了。如果轻量的话,我只想要 router 和 middleware 其他功能都不想要。

--
👇
IT写轮眼: 既然是想做一个轻量化的框架, 那干嘛又把 IoC + DI:容器和依赖注入模式 引入进来, 平白增加了复杂性和心智负担.

作者 xgpxg 2026-08-03 20:58

IoC + DI都是很容易理解的东西,并不会增加什么负担,且这两个的目的是为自动配置做准备,方便其他组件的集成。

--
👇
IT写轮眼: 既然是想做一个轻量化的框架, 那干嘛又把 IoC + DI:容器和依赖注入模式 引入进来, 平白增加了复杂性和心智负担.

None 2026-08-03 17:18

哈哈 我也想说 集成的东西太多了。如果轻量的话,我只想要 router 和 middleware 其他功能都不想要。

--
👇
IT写轮眼: 既然是想做一个轻量化的框架, 那干嘛又把 IoC + DI:容器和依赖注入模式 引入进来, 平白增加了复杂性和心智负担.

IT写轮眼 2026-08-03 16:06

既然是想做一个轻量化的框架, 那干嘛又把 IoC + DI:容器和依赖注入模式 引入进来, 平白增加了复杂性和心智负担.

1 共 5 条评论, 1 页