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。
仓库地址
https://github.com/poem-web/poem