最新发布的zino
0.8版本实现了与actix-web
框架的集成。至此,Zino同时支持了Rust社区中最流行的两个Web框架:axum
和actix-web
。
Zino框架通过应用接口抽象,可以允许你在actix-web
与axum
中自由切换并且尽可能少地改动代码。在应用示例actix-app
和axum-app
中,只有router
和middleware
两个模块需要改动,所有其它的模块(controller
、service
、schedule
等)都不需要任何改动,包括main.rs
也完全相同:
mod controller;
mod middleware;
mod router;
mod schedule;
mod service;
use zino::Application;
fn main() {
zino::Cluster::boot()
.register(router::routes())
.spawn(schedule::jobs())
.run(schedule::async_jobs())
}
对于使用者来讲,并不需要关心这种接口的差异,只需要专注于把业务代码写好。我们的Zino开发框架帮你解决到底是用actix-web
还是axum
的艰难抉择!
Ext Link: https://docs.rs/zino
1
共 8 条评论, 1 页
评论区
写评论你这是要实现消息推送吗 可以试试
axum::response::sse
呢--
👇
Poordeveloper: 借问一下axum的stream response有点慢(相对nodejs),感觉有缓存不是立即推送,有没有解?
借问一下axum的stream response有点慢(相对nodejs),感觉有缓存不是立即推送,有没有解?
自由讨论
也不是说zino就只支持从axum切换到actix,即使你只用axum,当axum有大版本升级的时候(比如即将推出的0.7),一样有很多不兼容的改动,这种变更完全可以在zino框架层面解决
文档没准备好 这是指中文教程吧(也在加紧撰写中) docs.rs上的API文档还是全的
当然,就Zino框架目前而言,还没有到功能完善的地步(预计要等async fn in trait在Rust 1.74中稳定之后)现阶段的推广更多地是寻找开发者共同参与,以及提供功能需要和改进建议,并没有推荐在生产环境使用
--
👇
Nayaka: 泼点凉水吧,非杠
就算是只用过axum的新手,换成actix其实也不难,毕竟rust本身门槛在那 既然要推一个东西真的得把文档先准备好,即使不是production ready,现在这样直接劝退 看了下issue,感觉基础设施还没完善 不然你说的极端情况里,别人更原意将Zino代入
泼点凉水吧,非杠
就算是只用过axum的新手,换成actix其实也不难,毕竟rust本身门槛在那 既然要推一个东西真的得把文档先准备好,即使不是production ready,现在这样直接劝退 看了下issue,感觉基础设施还没完善 不然你说的极端情况里,别人更原意将Zino代入
--
👇
photino: 主要目的是在更高的抽象层面来写业务代码,避免过于依赖一个固定的Web框架。假定一个团队的项目是用actix-web写的,招的新手只用过axum,那如果是用Zino框架,这对于新手来说实际上是没啥差别的。再极端一点,假如某一天actix-web不再维护了,在Zino框架下很容易就能切换到axum。或者以后有更好的Web框架了,也一样能集成到Zino框架下
--
👇
Ryan-Git: 为啥要在 actix-web 与 axum 中自由切换? 用了 zino 还是一样要选啊。。。
当然,也可以选择不用Zino,可以借鉴它的代码组织方式。但是,无论是直接用axum还是actix-web,最终组织出来的代码多少还是和Zino有点像的。一定程度上而言,Zino框架更像是一种实用性的规范
--
👇
zylthinking: 然而新手开始学习 Zino 了, 这是件更糟的事情 -- 为了避免学习采用更多的库, 学了一个采用更少的
--
👇
photino: 主要目的是在更高的抽象层面来写业务代码,避免过于依赖一个固定的Web框架。假定一个团队的项目是用actix-web写的,招的新手只用过axum,那如果是用Zino框架,这对于新手来说实际上是没啥差别的。再极端一点,假如某一天actix-web不再维护了,在Zino框架下很容易就能切换到axum。或者以后有更好的Web框架了,也一样能集成到Zino框架下
--
👇
Ryan-Git: 为啥要在 actix-web 与 axum 中自由切换? 用了 zino 还是一样要选啊。。。
然而新手开始学习 Zino 了, 这是件更糟的事情 -- 为了避免学习采用更多的库, 学了一个采用更少的
--
👇
photino: 主要目的是在更高的抽象层面来写业务代码,避免过于依赖一个固定的Web框架。假定一个团队的项目是用actix-web写的,招的新手只用过axum,那如果是用Zino框架,这对于新手来说实际上是没啥差别的。再极端一点,假如某一天actix-web不再维护了,在Zino框架下很容易就能切换到axum。或者以后有更好的Web框架了,也一样能集成到Zino框架下
--
👇
Ryan-Git: 为啥要在 actix-web 与 axum 中自由切换? 用了 zino 还是一样要选啊。。。
主要目的是在更高的抽象层面来写业务代码,避免过于依赖一个固定的Web框架。假定一个团队的项目是用actix-web写的,招的新手只用过axum,那如果是用Zino框架,这对于新手来说实际上是没啥差别的。再极端一点,假如某一天actix-web不再维护了,在Zino框架下很容易就能切换到axum。或者以后有更好的Web框架了,也一样能集成到Zino框架下
--
👇
Ryan-Git: 为啥要在 actix-web 与 axum 中自由切换? 用了 zino 还是一样要选啊。。。
为啥要在 actix-web 与 axum 中自由切换? 用了 zino 还是一样要选啊。。。