Rust 两次入门后,尝试写一个 web 项目,懵逼中~

117 天前
 5261

尝试多次入门后,用了以下一些框架

axum:web framwork sqlx:sqlboy

写着写着感觉用 rust 写 web 项目总感觉哪里味不对,一直在反思这 rust 写 web 应用真是适合吗?

就目前 orm 框架 sqlx 、seaorm 、diesel 都还在讨论哪个牛逼~

不像 Java ,mybatis 用起来那么爽~ 我既想要 orm 的字段映射到对象,也想要自定义查询的灵活~

5989 次点击
所在节点    Rust
59 条回复
FoxRiverMan
117 天前
你的问题太天真了!你以为 Rust 是 Java 吗?还想要 MyBatis 式的爽快?醒醒吧! Rust 玩的是编译时安全,不是 runtime 魔法。那些 ORM 框架还在用生命值交换类型安全,用宏展开模拟动态查询,它们连 MyBatis 的脚后跟都摸不到!

别做梦了!在 Rust 里想同时拥有 ORM 的对象映射和原生 SQL 的灵活?要么跪着用 sea-orm 的 ActiveRecord 模式,要么像苦行僧一样手写 sqlx 的映射代码。你以为 diesel 的查询 DSL 很牛逼?那不过是编译器用铁链拴着你跳舞!

Java 的 MyBatis 能边喝咖啡边写 XML 动态 SQL ,Rust 的 sqlx 让你跪着检查每个问号参数的类型安全!你想要的"字段映射到对象"?在 Rust 里每个结构体都要用#[derive(Debug, Clone, sqlx::FromRow)]来献祭,连枚举类型都要自己实现 Typesqlx::Postgres !

醒醒吧!用 Rust 写 Web 就像用手术刀砍树——要么你足够疯魔把整个生态链重写一遍,要么就老实承认这玩意儿现在根本不适合快速开发 Web 应用!等你的项目被生命周期标注搞得欲仙欲死时,Java 程序员早把功能上线十次了!
springz
117 天前
sea-orm 还有一个 https://github.com/SeaQL/sea-query 用一下这个试试,看看能不能找到熟悉的体验。

web framwork 我推荐你用 salvo 也看看能不能找到熟悉的感觉。https://github.com/salvo-rs/salvo
5261
117 天前
@FoxRiverMan 同意~ 当时也是出于说想找 web3 remote 工作去了解了下 Rust ,加上自己是 Java 应用开发,所以想着用 Rust 自己搭建个项目重写一遍 Java 的需求,写到一半发现很难受

那 Go 写 web 是不是就比 Rust 更适合呢?
5261
117 天前
@springz sea-orm 更难受~有点当初 habeinate 的感觉
peteretep
117 天前
哦我的上帝啊!
rust 要是再以 web 服务的样子出现,
Springboot 会发誓用它的自动装配狠狠地把 aop 踢进 rust 的屁股!
springz
117 天前
@5261 请注意我说的是 sea-query 。
springz
117 天前
我也不是很习惯 sea-orm ,用 sea-query 会比 sqlx 裸写 sql 好很多。
openmynet
117 天前
sea-orm 用着难受是没有结合自定义宏一起使用,sea-orm + validator + serder-aux 前端配合 ts 的 interface 不比 java 的 MyBatis 好上百倍
344457769
117 天前
@FoxRiverMan V2EX 不允许发布 AI 生成的内容的。
FoxRiverMan
117 天前
@344457769 刚问了 Siri ,它说本消息由你的母语基因自动生成,要封建议从甲骨文开始封起
kenshinhu
117 天前
如果不写 Web ,Rust 可以有哪些实践?
hangbale
117 天前
用 actix 写过,很痛苦,开发效率低,后面还是回到 node 了
hwdq0012
117 天前
5261
117 天前
@kenshinhu 我猜 估计更适合除 web 开发外的场景~
5261
117 天前
@springz ok ,sorry ,刚没注意
5261
117 天前
@springz salvo 这个 web 框架看着像国内团队开发的? 有点 Java 那味 哈哈
lancelock
117 天前
mybatis ... 爽吗?
iyaozhen
117 天前
额 rust 写 web 还不成熟吧。大部分业务 qps 很小,牺牲效率换取性能,得不偿失
sleepm
117 天前
Wh1t3zZ
117 天前
@FoxRiverMan #1 提醒下频繁发布 AI 生成内容会被 ban

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1123904

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX