Rust开发Web后端效率如何,来看看大家的评论

图片[1]-Rust开发Web后端效率如何,来看看大家的评论-JieYingAI捷鹰AI

Rust 是一种系统级编程语言,由 Mozilla 研究院开发,于 2015 年正式发布 1.0 版本。它结合了高性能、内存安全和并发性,旨在解决传统系统编程语言(如 C 和 C++)在安全和并发方面的痛点,同时保持对底层硬件的高效控制。

设计目标

内存安全:在保证性能的同时,通过所有权系统、借用检查和生命周期管理等机制,在编译期避免空指针引用、悬垂指针、内存泄漏等常见的内存安全问题。

并发性:为编写安全高效的并发和并行程序提供原生支持,避免数据竞争等多线程编程陷阱,使开发者能够充分利用现代多核处理器的性能。

高效性:追求与 C 和 C++ 相近的运行效率,允许对硬件资源进行精细控制,同时具备零成本抽象的特性,即使用高级抽象不会引入额外的运行时开销。

网友评价

鉴于 Rust 在效率方面表现卓越,不少人会思考:它用于开发 Web 后端究竟效果如何?为此,我特意在网上展开搜索,想看看大家对此都有哪些见解。

Liangdi:

Rust web 开发通用需求下(微服务还没深入应用)没有什么坑了,各主流框架实现的功能都差不多,不会有很大的功能上的差异,所以如果你问我,推荐 actix-web/axum/rocket 哪个? 我的答案是都可以,因为他们的设计都很接近,这也是 web 框架发展这么多年了,抽象的差不多了,生态上其实更需要的是企业级的应用框架:没错就是类似 spring boot!. 给出最佳实践参考,第三方模块积极整合集成,那时候 rust web 开发应该就更上一层楼了。

jcfun:

写毕设的时候用过rust。大概就是用axum写了rest api和websocket,再写一写webassembly,orm用的rbatis,数据库PG,代码行数在1w5左右。

开发效率的话,中后期写习惯了感觉和Java差不太多,总之就是crud,遇到的语法问题也比较少(刚开始还是很难受的,熟练之后就很少遇到了,已经变成rust的形状了呢),也没什么不太一样的。最痛苦的是后面代码数量上5000行之后,编译速度就明显的慢下来了,到最后面每次debug甚至要将近一分钟(我再也不嘲笑spring启动慢了)。而且rust各种依赖的体积也很大,我是用vscode远程连接到服务器的方式进行开发的,中间把我服务器硬盘干爆过3次,最后扩容到80G才勉强够用(我的银子啊)。

总之,除了编译慢和依赖体积较大外,我觉得rust开发web后端的体验和Java差不了太多,如果你感兴趣的话可以尝试一下。

布丁改二甲:

该有的基本都有,写起来效率也还行,开新坑可以一试。

夜猫子:

我们后端业务开发,不可避免的会面对大家一起来堆屎的局面,这个不由任何人的意志决定,就算你们团队个个都是棒小伙儿,业务部门的奇葩需求变更总要响应吧。

我很好奇这个问题下的其他答主,有没有用 rust 写过那种几百上千个接口,持续至少三年以上,大概有十个人左右一起堆屎的 web 后端项目。

一个人写几个接口当然可以搞得很漂亮很高效,但这种高效并不仅仅是语言的功劳,也是项目本身简单和确定性的结果。

像是 java go php 这些语言,low 是 low,但在大家一起来堆屎这种场景下表现得还行。

比如我看有人抱怨项目大了以后 rust 的编译时间变长,这就很影响堆屎效率。

所以 rust 到底在这种场景下行不行,我只能说路遥知马力吧。

小黄鸭式编程:

任何一门计算机语言,来到了中国必定会成为写业务的语言……真的何苦为难rust了。

是go,Java,php,nodejs 不能写么。

确实,把rust用到真正需要它的地方不容易,毕竟不是所有计算机从业人员都学完了计算机基础课程。

森林黑蚂蚁:

只写 API 掌握了模板还是快的,基本 actix/axum Diesel 什么的时间梭一把就完事了。

但如果你还想要生成swagger文档什么的,就比较麻烦了。还有就是协程、配置这些,都是有能用的但没那么好用。

MacJayLee:

axum 我心目中的最佳Rust web框架

actix也很好用 随便整吧

ReliefZk:

actix-web + diesel 重构了我业余项目的Java后端,写起来很爽,开发效率没感觉比 Java 低.

但启动内存只有几十M 让人很开心...

平平无奇古哥哥:

个人见解:

rust目标成为c的替代品,go目标成为java替代品。

rust和go相对于前两者开发都要更简洁,性能也有提升。为什么这么多好处还没能大面积使用呢,因为有历史包袱。社区生态,工具,类库,大型成熟方案,最佳实践都还没有特别的多,因此还需要时间,不过也是入坑比较好的时机。

景风来:

为什么要用Rust开发Web应用?这是和自己过不去!

开发Web应用的语言,生态成熟的例如Java、Python、Ruby、PHP,甚至Golang。这些语言开发Web应用哪一个不比Rust顺手?

Rust的定位是一门主打安全的系统级语言,你可以用Rust开发操作系统、网络中间件、存储系统、编译器等等。然而你却用Rust写Web应用,实属于拿牛刀去宰鸡 ——尽装逼!

兽王曼陀罗阵:

rust不仅适合开发web后端,还包括前端,中端,云端和彼端。

替代这种话说多了就没意思了,但是问这种问题显然是对rust的实力一无所知。R们

码农致知:

执行效率杠杠的,开发效率要看人了,熟悉了也是杠杠的。

今天吃了颗糖:

只做CRUD,那就是调包侠,能分出啥区别

开发效率

学习曲线与上手难度:Rust 的语法较为复杂,有严格的所有权系统、生命周期管理等概念,开发者尤其是初学者需要花费较多时间学习理解,这在项目初期可能会降低开发效率。例如,理解为什么一段看似合理的代码会因为所有权问题无法编译通过,可能需要查阅不少资料。

不过,一旦掌握了 Rust 的核心概念,后续开发过程中因内存安全等问题导致的潜在错误会大大减少,从长期来看可能提升整体开发效率。

生态系统与可用库:Rust 的 Web 生态系统虽然在不断发展壮大,但相比一些成熟的 Web 后端开发语言(如 Python 的 Django、Flask,Node.js 的 Express 等),其生态丰富度仍有差距。在寻找特定功能的库时,可能面临选择有限的情况,这可能需要开发者自行编写部分功能,一定程度上影响开发效率。

然而,像 Actix Web、Rocket 等优秀的 Web 框架已经具备了构建高性能 Web 应用所需的基础功能,如路由、中间件支持等,合理使用这些框架可以加快开发进程。例如,Actix Web 基于 Actix 异步运行时,能高效处理大量并发请求,开发者利用其提供的抽象可以快速搭建 Web 服务的基本架构。

运行效率

性能优势:Rust 语言的底层特性使其在运行效率上表现卓越。它能够在不牺牲内存安全的前提下,实现接近 C/C++ 的性能。对于 Web 后端应用,特别是处理高并发请求时,Rust 的高效能优势明显。例如,在构建 API 服务时,Rust 可以快速处理大量的 HTTP 请求,减少响应时间,提高系统的吞吐量。

Rust 的零成本抽象特性使得开发者可以使用高级的抽象概念(如 trait、泛型等)编写代码,而不会带来额外的运行时开销,这进一步提升了代码的运行效率。

资源利用:由于 Rust 对内存的精细控制,它在运行过程中内存占用少,资源利用率高。在部署 Web 后端服务时,较低的资源需求意味着可以在相同配置的服务器上承载更多的服务实例,降低运营成本。例如,与一些动态语言开发的 Web 应用相比,Rust 应用在处理相同规模的并发请求时,所占用的内存可能只有其几分之一。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享