用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
和多线程也相对简单,因为从高层次上看,这些语言的设计很相似。我需要学习Arc
、RwLock
和Mutex
的区别、可变引用、如何实现结构体(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
社区学习交流平台订阅:
评论区
写评论runtime中立可太好了,希望越来越多的包能摆脱指定runtime的束缚