< 返回版块

Mike Tang 发表于 2024-12-14 18:00

用Rust重写一个Nodejs项目,得到900倍提升

  • 处理速度提升900倍:大型代码库现在能够以创纪录的速度处理,大幅减少等待时间并提升开发者的生产力。如果你还不信,只需看看上方展示的“魔法”即可!
  • 平台支持范围扩大:无论你使用的是Terraform团队、OpenTofu,还是尝试一些独特的工具,Stakpak都能满足你的需求。自迁移以来,我们已支持GitHub Actions、Dockerfile,以及自动化处理所需的任何配置——只需告知,我们为你搞定!
  • 更好的错误处理和稳定性:系统能够优雅地处理边缘案例和损坏的配置,最大程度地减少中断和停机时间。

https://stakpak.dev/blog/2024/12/11/we-rewrote-stakpak-in-rust/

一个C#程序员对Rust的使用感受

我并非Rust的专家,但最近开发了一个Tauri应用程序(对于好奇的人来说,WPF并不适合这个特定任务),结果让我感到惊喜:编写后端的过程真是一种享受。

起初,我以为Rust的借用检查器会是个噩梦,因为我已经很久没用像C/C++那样需要深入思考指针的语言了。但实际使用时,它并没有成为问题。一旦理解了语法和背后的逻辑,一切都非常合理。唯一的不同在于,在C#中,我会用像ConcurrentQueue<T>SynchronizedCollection<T>这样的工具来管理线程间的同步,而在Rust中,我需要考虑所有权和借用。不过归根结底,问题是一样的:如果两个线程需要访问某个状态,你就必须仔细思考如何以及为何访问。

此外,Rust中的async/await和多线程也相对简单,因为从高层次上看,这些语言的设计很相似。我需要学习ArcRwLockMutex的区别、可变引用、如何实现结构体(impl)、通道以及一点点生命周期的知识,但这并没有阻碍我实现所需的功能。最棒的是,正如大家常说的,一旦编译通过,代码大多就能直接运行!归根结底,只要掌握了所需的语言基础,就能够让程序正常工作。

我唯一对Rust的不满是它的编译/构建时间较长,但这也没办法……

如果项目适合Rust的话,我非常乐意推荐使用它。

https://www.reddit.com/r/rust/comments/1hcgitp/i_finally_get_it_or_rust_from_the_perspective_of/

Fastimer - 定时器和定位任务库

它的特点是runtime中立。

https://github.com/fast/fastimer

limbo - 完全Rust重写的sqlite

功能特点:

  • 内嵌式OLTP数据库引擎库
  • 在Linux上支持异步I/O,使用io_uring
  • SQLite兼容性(进行中)
    • SQL方言支持
    • 文件格式支持
    • SQLite C API
  • JavaScript/WebAssembly绑定(进行中)
  • 支持Linux、macOS和Windows

https://github.com/tursodatabase/limbo

--

From 日报小组 Mike

社区学习交流平台订阅:

评论区

写评论
hohowt 2024-12-15 16:04

runtime中立可太好了,希望越来越多的包能摆脱指定runtime的束缚

1 共 1 条评论, 1 页