文章《Is Rust faster than C?》
作者:Steve Klabnik
文章探讨了“Rust是否比C更快”的问题,指出比较两者的性能很难,因为“相同条件”很难定义。
通过内联汇编示例(Rust和C代码生成相同汇编代码),说明在某些情况下两者性能相同。
但Rust和C在语义和默认行为上存在差异,如Rust的结构体字段重排序优化、运行时边界检查等,这些可能导致不同代码生成和性能表现。
作者认为,从理论上讲,Rust可以实现与C相同的性能,但在实际工程中,由于开发者能力、项目需求等因素,很难得出通用结论。
阅读:https://steveklabnik.com/writing/is-rust-faster-than-c/
Reddit:https://www.reddit.com/r/rust/comments/1l7bvb0/is_rust_faster_than_c/
文章《Why doesn't Rust care more about compiler performance?》
作者:Kobzol
文章探讨了Rust编译器性能问题,指出尽管Rust编译器性能在持续改进(如过去三年中,某些项目编译速度几乎翻倍),但对许多开发者来说,编译速度仍不够快。
作者认为,Rust在某些特定场景下有潜力实现近乎即时的增量编译,但这需要权衡,如牺牲部分运行时性能。
尽管Rust团队有诸多改进编译速度的想法(如并行前端、智能增量编译等),但实施面临技术挑战、工作优先级和人力不足等问题。
作者强调,编译器性能只是Rust众多关注点之一,改进需要长期投入和社区共同努力。
Reddit:https://www.reddit.com/r/rust/comments/1l77jso/why_doesnt_rust_care_more_about_compiler/
文章《Nine Rules for Scientific Libraries in Rust》
作者:Carl M. Kadie
文章总结了在 Rust 中开发科学计算库的九条规则,基于作者在 SciRustConf 2025 的演讲。
内容包括支持 Python(使用 PyO3 和 maturin)、异步云 I/O、并行计算(使用 Rayon)、SIMD、CI 和良好 API 设计。
这些主题反映了会议中讨论的热点,文章还链接了更深入的技术资料。
阅读:https://medium.com/@carlmkadie/nine-rules-for-scientific-libraries-in-rust-6e5e33a6405b
Reddit:https://www.reddit.com/r/rust/comments/1l79vrm/nine_rules_for_scientific_libraries_in_rust_from/
文章《When is a Rust function "unsafe"?》
作者:crescentrose
文章探讨了Rust中unsafe
关键字的使用场景和争议。
unsafe
通常与内存安全相关,但作者指出,它也可能涉及其他类型的安全性问题。文章列举了几种unsafe
的常见用法,包括访问非法内存、破坏数据布局、使用外部函数接口等。
同时,作者提出了几种有争议的场景,如违反运行时不变量、可能导致逻辑错误的函数,以及可能对现实世界造成危害的操作。
最后,作者提出了一个“坏主意”:引入unsafe
上下文,允许开发者在使用unsafe
函数时明确其风险,并限制其使用范围。
阅读:https://crescentro.se/posts/when-unsafe/
Reddit:https://www.reddit.com/r/rust/comments/1l740r4/when_is_a_rust_function_unsafe/
Munal OS - 基于 WASM 的图形化操作系统
Munal OS 发布了第一个版本,它采用单内核设计,以简化代码为目标,不实现传统OS的许多功能,如引导程序、页面映射、虚拟地址空间和中断。
它将整个系统编译为单个EFI二进制文件,使用UEFI系统时钟,不重新映射地址空间,通过VirtIO驱动与QEMU通信,采用轮询而非中断驱动。
系统运行在一个全局事件循环中,使用WASM引擎实现应用沙箱化,提供“系统调用”API供应用与系统交互。
功能:
- 高清分辨率的全图形界面,支持鼠标和键盘
- 带有窗口管理器和上下文径向菜单的桌面 shell
- 网络驱动程序和 TCP 堆栈
- 可定制的 UI 工具包,提供各种小部件、响应式布局和灵活的文本渲染
- 嵌入式定制应用程序选择包括:
- 支持 DNS、HTTPS 和非常基本的 HTML 的 Web 浏览器
- 文本编辑器
- Python 终端
仓库:https://github.com/Askannz/munal-os
Reddit:https://www.reddit.com/r/rust/comments/1l7av38/media_munal_os_a_fully_graphical_experimental_os/
Tombi - TOML Language Server
Tombi 是一个全新 TOML 语言服务器,用来替代 taplo。
它提供 Formatter, Linter, 和 Language Server,针对 Rust 的 Cargo.toml 和 Python 的 uv 进行了优化,并具有使用 JSON Schema Store 的自动验证功能。
可以在 VSCode、Cursor、Windsurf、Zed 和 Neovim 上安装它。
文档:https://tombi-toml.github.io/tombi/
仓库:https://github.com/tombi-toml/tombi
Reddit:https://www.reddit.com/r/rust/comments/1l75r5o/tombi_new_toml_language_server/
Arc-slice - 更通用和高效的 tokio-rs/bytes 库
arc-slice
是一个用于处理共享内存切片的 Rust 库,提供了 ArcSlice
和 ArcSliceMut
类型,支持多种布局和缓冲区类型。
它比 bytes
更通用和高效,支持任意缓冲区和元数据,避免隐式重新分配,并提供可选的 OOM 处理和引用计数饱和处理。
性能测试表明,arc-slice
在某些操作上比 bytes
更快。它还支持小字符串优化,并可通过特定布局进一步优化性能。
仓库:https://github.com/wyfo/arc-slice/
Reddit:https://www.reddit.com/r/rust/comments/1l744cq/arcslice_010_a_generalized_and_more_performant/
Smallrand - 轻量级的 Rust 随机数生成库
smallrand
是一个轻量级的 Rust 随机数生成库,提供与 rand
类似的功能,但依赖更少且无 unsafe
代码。
它实现了 Xoshiro256++
和 ChaCha12
算法,支持生成均匀分布的整数和浮点数。
该库易于审核,仅依赖 getrandom
(非 Linux/Unix 平台),且可作为 no-std
使用。
在 Apple M1 上的基准测试中,smallrand
总体上比 rand
稍快,尤其在生成指定范围的 u64
时速度快 2.6 倍。
仓库:https://github.com/hpenne/smallrand
Reddit:https://www.reddit.com/r/rust/comments/1l7ct3e/introducing_smallrand_sorry/
Elpe - 基于 Rust+Ocaml 的配置代码构建系统
Elpe 是一个用 Rust 和 OCaml 编写的新型配置即代码的不可变构建系统,旨在弥合 Nix 和 Debian/Ubuntu 等主流包管理器之间的差距。
它通过容器运行脚本,支持使用 Ubuntu 包而非完全自举。
Elpe 重新思考了 Nix 的语言设计和安全问题,目标是简化构建环境的描述和运行。
目前仅支持 Linux,但有潜力扩展到其他平台。
文章:https://pijul.org/posts/2025-06-08-elpe/
仓库:https://nest.pijul.com/pmeunier/elpe
Reddit:https://www.reddit.com/r/rust/comments/1l76jzo/elpe_a_configascode_build_system_in_rustocaml/
讨论:使用 Rust 实现哪些常用的工具、库或框架?
高赞回答:
“一个 SAT 求解器。它们是工业级的组合求解器,但它们维护的不变量从根本上与“Rust 思维模式”不相容(大量的可变性无法很好地突破数据结构的界限)。Rust 中存在一些求解器,但它们的效率都达不到最先进的水平。”
“uv 版本的 gradle。”
Reddit:https://www.reddit.com/r/rust/comments/1l6ypys/what_tools_do_you_wish_someone_has_done_it_in_rust/
--
From 日报小组 苦瓜小仔
社区学习交流平台订阅:
评论区
写评论还没有评论