Poem是一个基于tokio/hyper的WEB服务端框架
为什么要做一个新的web框架
- actix-web已经半死不活了,和tokio1兼容的新版本始终出不来(就算出来和其它生态结合也有问题,因为用得单线程runtime)
- tide已经死了,和async-std一起
- warp太复杂,就算是一个rust老手也会经常被整的死去活来
- axum目前比较火,但是在我深入研究之后,发现也存在和warp同样的问题。
在和社区的朋友聊axum的过程中,发现大家都不太玩得明白,我突然就想做一个用起来简单点的。
Poem简单在哪里
我觉得warp复杂在于大量的泛型造成代码难以理解,甚至连IDE都无法正确识别类型造成编码的困难。
但简单不代表没有泛型,而是去掉一些不必要的泛型。
Poem在对性能影响不大的地方尽量减少泛型的使用,定义IDE友好,容易理解的API。
Poem的当前状态
完全覆盖warp的功能,API已经基本稳定。
Poem的后续目标
- 更完善的文档以及使用手册。
- 覆盖更全面的测试用例。
- 提供更多开箱即用的功能。
- 内置openapi(swagger)的支持。
感谢
感谢张汉东提供的Poem注册名,小丁制作的网站,以及社区各位朋友提供的意见和PR。
Ext Link: https://github.com/poem-web/poem
1
共 8 条评论, 1 页
评论区
写评论看上去还不错,学习。
希望成为Rust领域的RoR,Rust on Rails 听起来太响亮了
--
👇
douchuan: cool,加油,油条哥
cool,加油,油条哥
私以为axum很棒,充分展示了rust这门语言的表达能力。 1.路由非常方便,演示了Rust不用宏,也可以搞DSL的方法。 2.Extractors与AddExtension极为灵活,简化了warp通过构建参数获取Request与环境数据的设计。 3.借用Tower生态提高了代码利用率。
axum必火,她将取代warp,成为最优秀的web框架。目前正尝试用axum将前期用warp写的web服务重写。
为什么会死呢 刚了解这个
--
👇
TD-Sky: async-std死了?😨
希望以后能把路径定义写在宏里,像springMVC一样。
async-std死了?😨
油条哥,赞赞赞