Rust Use Within the QEMU Emulator Shaping Up Wella year agohttps://www.phoronix.com/news/Rust-QEMU-Progress-Q2-2025QEMU作为Linux虚拟化的核心组件,目前正在试验性支持Rust语言进展包括改进的Rust绑定以及在QEMU的Rust代码中扩展功能QEMU中的Rust代码现已可在所有支持平台上编译,并通过了CI和单元测试特定设备模型(如pl011和HPET)已用Rust实现,其中pl011主要使用安全代码已发现的挑战包括早期绑定代码问题,以及需要更好的crate组织架构
Code Wars: Rust vs. C in the Battle for Billion-Device Safetya year agohttps://thenewstack.io/code-wars-rust-vs-c-in-the-battle-for-billion-device-safe...Rust在安全关键应用中的优势包括固有的内存安全、严格的编译时检查和一流的测试人体工学设计。西门子Nucleus RTOS中的关键漏洞影响了超过30亿台设备,突显了内存不安全语言的风险。Tweede golf的实验表明,Rust实现能预防C代码中发现的任意代码执行漏洞。Rust的设计默认防止了未检查的内存访问、缺乏边界检查以及对外部输入的隐式信任。即使预先知道漏洞,用Rust开发安全实现的时间仍显著快于C语言。正如谷歌、微软等科技巨头所证明的,Rust等内存安全语言能降低安全风险。Rust被认为是当前系统级网络代码的最佳工具,相比C语言具有压倒性优势。虽然Rust在系统级问题上表现出色,但对于更高层次的任务,Python或Go等其他安全语言可能迭代更快。
Feather: Feather: A web framework that skips Rust's async boilerplate and jusa year agohttps://github.com/BersisSe/featherFeather 是一个轻量级、开发者体验优先的 Rust Web 框架,灵感来自 Express.js,但为 Rust 的性能和安全性而设计。中间件优先架构:所有功能都是中间件(包括路由处理、认证和日志),可组合且结构清晰。基于 Context 的简易状态管理:通过 Context API 简化状态管理,无需使用提取器/宏。开发者体验至上:API 设计极简、符合人体工学且可读性强。模块化与可扩展性:采用模块化设计,允许用户按需选择功能。开箱即用的强大工具链:Feather-CLI 可快速创建 API 和 Web 服务器。示例用法:通过简洁代码片段演示基础服务器搭建、中间件使用和 Context API 状态管理。原生 JWT 支持:通过 Cargo feature 启用内置 JWT 模块。社区与贡献:欢迎提交 PR,鼓励在 GitHub 上点赞项目、分享传播并用其构建应用。快速入门:克隆仓库、运行示例应用,即可开始 Feather 开发之旅。
An Interactive Debugger for Rust Trait Errorsa year agohttps://cel.cs.brown.edu/blog/an-interactive-debugger-for-rust-trait-errors/类型系统有助于捕捉简单错误,但在处理复杂错误时存在困难。Rust等语言中的复杂类型机制可能导致冗长且令人困惑的错误信息。Diesel(Rust的ORM框架)通过trait实现SQL查询验证,这可能使错误诊断复杂化。Argus是Rust的交互式trait调试器,帮助开发者理解复杂类型错误。Argus提供基于GUI的trait推导树探索功能,改进了错误定位能力。用户研究表明,开发者使用Argus定位trait错误的速度提高了3.3倍。Argus已作为VSCode插件发布,源代码托管于GitHub平台。
Memory-safe sudo to become the default in Ubuntua year agohttps://trifectatech.org/blog/memory-safe-sudo-to-become-the-default-in-ubuntu/Ubuntu 25.10 将采用 sudo-rs,这是一个用 Rust 编写的内存安全版 sudo 重构实现。这一变更是 Canonical 公司通过使用 Rust 等内存安全语言提升系统韧性的举措之一。sudo-rs 由 Trifecta 科技基金会(TTF)开发,是其「权限边界计划」的组成部分。Canonical 正资助完成 sudo-rs 的第五里程碑开发,包括防止 shell 逃逸和支持旧版 Linux 内核等特性。此次转型将保持现有工作流程兼容性,同时舍弃原版 sudo 中的小众功能。sudo-rs 将成为 Ubuntu 25.10 的默认组件,并计划在社区测试后纳入 Ubuntu 26.04 LTS 版本。Trifecta 科技基金会专注于影响数字安全的开源基础设施项目。Canonical 为跨系统和跨行业领域提供开源软件及服务。
Matt Godbolt sold me on Rust (by showing me C++)a year agohttps://www.collabora.com/news-and-blog/blog/2025/05/06/matt-godbolt-sold-me-on-...Matt Godbolt关于'正确构建API'的演讲重点探讨了C++在类型安全方面的挑战,以及Rust如何更有效地解决这些问题。在C++中,即使使用类型别名和显式构造函数,仍然可能误用Quantity和Price等类型而不会触发编译器警告。Rust的类型系统和编译器检查能在编译时防止常见错误,例如交换参数类型或将负值用于无符号整数。Rust对运行时输入错误(如将字符串解析为数字)的处理方式强制开发者显式处理潜在错误,从而提高了代码安全性。文章强调Rust的设计优势不仅限于内存安全,还能帮助开发者避免简单错误,编写出更可靠的代码。
Brush (Bo(u)rn(e) RUsty SHell) a POSIX and Bash-Compatible Shell in Rusta year agohttps://github.com/reubeno/brushbrush是用Rust实现的兼容POSIX和bash的shell支持Linux、macOS系统,Windows可通过WSL实验性运行已具备交互使用功能,但暂不建议用于生产环境支持多数sh和bash脚本,已知限制在issue中跟踪记录欢迎贡献代码与反馈,项目采用MIT许可证安装方式:`cargo install --locked brush-shell` 或克隆仓库Nix和Arch Linux用户有专属安装方法可通过`~/.brushrc`自定义配置,默认会处理`.bashrc`已知缺失部分`set`/`shopt`选项功能及未实现特性已通过550+测试用例对比其他shell的输出与退出码依赖`reedline`、`clap`、`fancy-regex`、`tokio`和`nix`等库使用`pprof-rs`、`criterion.rs`和`bash-completion`进行测试支持设计灵感来自`nushell`、`rusty_bash`和`mvdan/sh`等shell
Matt Godbolt sold me on Rust (by showing me C++)a year agohttps://medium.com/@gustavokov/matt-godbolt-sold-me-on-rust-by-showing-me-c-8be9...Matt Godbolt的演讲重点探讨了C++ API设计中的挑战,以及Rust如何更有效地解决这些问题。C++在类型安全方面存在不足,允许隐式类型转换和类型误用而不发出警告。Rust通过编译时检查防止类型误用,并强制处理潜在错误。文章对比了C++为实现类型安全而采用的冗长解决方案与Rust内置的保护机制。Rust的设计使开发者免于常见错误,其优势不仅限于内存安全。后续文章将继续讨论Matt Godbolt演讲中的更多主题,包括并发安全和RAII机制。
Zed: The Fastest AI Code Editora year agohttps://zed.dev/blog/fastest-ai-code-editorZed被宣传为全球最快的AI代码编辑器,基于Rust语言开发,并以GPLv3协议开源。Zed的智能代理面板支持用户无需预设即可与AI代理交互,执行代码修改、查询等任务。Zed默认保障隐私安全,不收集用户数据,且在执行不可逆操作前需用户确认。用户可为代理选择多种语言模型(包括通过Ollama接入自定义模型),并自定义工具权限。Zed基础功能免费,AI功能采用订阅制(免费版50次/月,20美元/月可享500次)。当前支持macOS和Linux系统,Windows稳定版计划于2025年发布。未来将推出调试器、增强AI协作功能及Windows支持等更新。
Ty: A fast Python type checker and language server, written in Rusta year agohttps://github.com/astral-sh/ty一个用Rust编写的极速Python类型检查器和语言服务器该项目仍在开发中,尚未准备好投入生产环境使用问题或错误报告应通过仓库的issues功能提交开发主要在Ruff代码库进行;若需修改ruff子模块,请在该仓库提交pull request该项目采用MIT许可证授权所有贡献内容同样遵循MIT许可证,不附加额外条款
Rust Dependencies Scare Mea year agohttps://vincents.dev/blog/rust-dependencies-scare-me/?作者对Rust的依赖管理表示担忧,特别是随意添加crate而忽视其必要性和维护状态的现象。通过亲身经历发现'dotenv' crate已无人维护后,作者开始质疑某些依赖的必要性,并选择手动实现所需功能。作者指出Tokio、Axum等依赖虽然强大且维护良好,但其复杂性和庞大体积会显著增加项目代码行数。当将所有依赖打包后,项目总代码量达360万行,而作者自身代码仅约1000行,这引发了对代码可审计性的担忧。作者探讨了是否该扩充Rust标准库的权衡,强调该语言追求性能、安全性和模块化的目标,尤其在嵌入式系统中的考量。文中质疑像Cloudflare这样的企业如何审计其依赖项,并讨论了管理二进制体积及crate中冗余功能带来的挑战。作者最后反思Rust依赖生态现状及改进方向,并以幽默口吻表示自己随时可胜任Rust相关职位。
Show HN: Woxi - A Rust-based interpreter for a subset of the Wolfram Languagea year agohttps://github.com/ad-si/Woxi基于 Rust 的 Wolfram 语言子集解释器。专注于 Wolfram 语言子集的命令行脚本处理。包含示例,如打印随机整数和字符串连接。由于无内核开销,Woxi 运行速度比 WolframScript 更快。安装需使用 Rust 的 cargo 或从源码构建。支持直接命令行求值与脚本执行。提供 Woxi 与 WolframScript 命令的对比表格。鼓励通过 Pull Requests 提交贡献。包含测试套件及相关 Wolfram 语言项目链接。
Rust Dependencies Scare Mea year agohttps://vincents.dev/blog/rust-dependencies-scare-me/作者对Rust的依赖管理表示担忧,特别是对crates.io的依赖以及未维护软件包带来的潜在风险。通过亲身经历发现'dotenv' crate无人维护后,作者开始质疑某些依赖项的必要性。作者指出项目中依赖的复杂性和规模——带依赖包的代码达360万行,而不带依赖的原始代码仅11,136行。面对如此庞大的代码审计可行性表示担忧,尤其是当个人贡献代码仅约1,000行时。作者探讨了在Rust标准库增加功能的权衡,需兼顾性能、安全性和模块化目标。以Cloudflare和Clickhouse等公司同样依赖外部crates为例,强调依赖管理的普遍难题。作者思考如何应对这些依赖管理挑战,暗示需要更好的工具或实践方案。
Std: Mem Is Interestinga year agohttps://blog.veeso.dev/blog/en/std-mem-is-interesting/Rust中的std::mem模块包含了一些不常用但功能强大的函数。drop函数用于在值超出作用域前手动释放它。swap、take和replace函数帮助在不必要拷贝或移动的情况下操作值。align_of和align_of_val函数返回类型或值所需的ABI对齐要求。discriminant函数为枚举变体提供唯一标识符,可用于比较。forget函数通过不释放值来造成内存泄漏,适用于将资源转移给C代码的场景。needs_drop函数检查类型是否需要释放,基于它是否实现了Drop trait。size_of和size_of_val函数返回类型或值的字节大小。transmute函数将一个类型的比特位重新解释为另一个类型,要求两种类型大小相同。zeroed和MaybeUninit用于初始化值,zeroed会将所有比特位设为零。std::mem模块虽然小众,但包含了许多特定场景下非常有用的函数。
ToyDB rewritten: a distributed SQL database in Rust, for educationa year agohttps://github.com/erikgrinaker/toydbtoyDB是一个用Rust编写的分布式SQL数据库,作为教育项目开发特性包括Raft分布式共识算法、基于MVCC多版本并发控制的ACID事务和可插拔存储引擎包含基于迭代器的查询引擎,支持启发式优化和时间穿梭功能支持连接查询、聚合操作和事务等SQL功能最初创建于2020年用于学习数据库内部原理,后基于专业经验进行重构设计注重简洁性和正确性,而非性能或可扩展性包含架构指南、SQL示例、SQL参考文档和研究资料可运行本地五节点集群并附带命令行客户端使用Golden脚本进行测试,提供工作负载基准测试工具通过VSCode和CodeLLDB扩展提供调试支持
A Rust API Inspired by Python, Powered by Serdea year agohttps://ohadravid.github.io/posts/2025-05-serde-reflect/文章探讨了如何在Rust中重新实现Python的动态能力(如__getattr__),利用serde crate实现类似反射的行为。研究了受Python的WMI包启发创建Rust API,旨在通过复杂实现提供简洁直观的接口。该方案运用Rust的trait系统和Serde的Deserialize trait动态查询构建对象,模仿Python的灵活性。详细讲解了如何为Rust严格类型系统实现自定义Deserializer,包括动态处理结构体名称和字段值。文章重点展示了通过Rust编译时trait和Serde派生宏实现的零成本抽象,兼顾人性化API设计。最后讨论了未来工作方向和其他方案,包括过程宏和ORM相关crate,并肯定了serde生态的稳定性和功能特性。
Show HN: Helixdb – Open-source vector-graph database for AI applications (Rust)a year agohttps://github.com/HelixDB/helix-db/HelixDB 是一款用 Rust 编写的高性能开源图向量数据库,专为 RAG 和 AI 应用设计。基于 LMDB 并通过 Heed3 驱动,提供针对 AI 和向量应用的可靠性及现代化特性。性能表现卓越:比 Neo4j 快 1000 倍,比 TigerGraph 快 100 倍,向量性能与 Qdrant 相当。原生支持图和向量数据类型,是 RAG 应用的理想选择。提供最便捷的方式存储节点、向量或二者之间的关系。通过 LMDB 实现 ACID 合规性与强健存储,确保数据完整性。内置 CLI 工具支持安装、配置、查询编译与部署。提供 TypeScript 和 Python SDK 用于数据库查询。当前重点方向包括扩展向量数据类型能力、增强查询语言鲁棒性及实施测试套件。长期项目包括开发自研图向量存储引擎和网络协议库。采用 AGPL 许可证,并为特定用户提供托管服务和企业级支持。
Don't Unwrap Options: There Are Better Waysa year agohttps://corrode.dev/blog/rust-option-handling-best-practices/在Rust中处理`Option`中的`None`而不使用`unwrap()`是常见问题`?`运算符在返回`Result`的函数中不能直接用于`Option`常见临时方案包括使用`unwrap()`,但这可能导致运行时panic解决方案包括改为返回`Result`类型、使用`ok_or`、`match`或`let-else``let-else`(Rust 1.65稳定版引入)因其清晰性和健壮性被推荐对于应用程序(非库代码),`anyhow`箱的`context`方法是替代方案`let-else`因标准库支持、可读性和灵活性成为首选方案
OpenTelemetry Protocol with Apache Arrowa year agohttps://opentelemetry.io/blog/2025/otel-arrow-phase-2/OpenTelemetry与Apache Arrow协议(OTel-Arrow)第二阶段计划公告目标:通过Apache Arrow桥接OpenTelemetry数据,实现高效、零拷贝的结构化数据交换重点:探索基于Rust的管道性能及其与OpenTelemetry Collector(Golang生态)的集成研究方向:从SDK层开始的端到端零拷贝列式数据处理计划:将Apache DataFusion库集成至OpenTelemetry管道,实现与数据湖的直接连接开发:用Rust构建端到端OTAP管道,将遥测数据嵌入Arrow记录批次兼容性:持续支持Golang组件,确保Go与Rust管道的协同工作贡献者:Laurent Quérel(F5)和雷黄(Greptime)提供Rust原型及指标转换方案进展:成立OTel-Arrow特别兴趣小组(SIG)并建立定期会议机制
Flattening Rust's Learning Curvea year agohttps://corrode.dev/blog/flattening-rusts-learning-curve/放下戒备,接受Rust独特的心智模型(包括生命周期和所有权等概念)将借用检查器视为合著者,从编译器错误中学习Rust的显式表达(如类型标注)能提升代码可读性和重构能力从第一天就使用clippy等工具强制养成良好实践从小步开始:初期可自由使用`String`、`clone()`和`unwrap`避免一次性引入过多新概念,编写小而专注的代码片段保持编码精确性,注重细节能加速学习进程不要依赖自动补全或大语言模型取巧,手动编写代码以建立理解通过无辅助编码培养肌肉记忆,形成编程直觉预判编译结果来强化对Rust规则的理解在查阅解决方案前先自行解决问题以深化学习故意破坏代码来更好地理解编译器提示学习阶段避免使用外部crate,尝试编写自己的小型库用草图可视化生命周期等抽象概念辅助理解将Rust概念映射到已知语言,同时注意细微差异不要猜测——细节决定成败,仔细阅读错误信息采用类型驱动开发,充分利用Rust类型系统确保正确性投入时间寻找符合个人学习风格的资源避免被动观看视频,优先选择书籍或课程寻找编程伙伴进行结对编程和代码审查向非Rust开发者解释概念来检验自己的理解相信Rust的长期价值——它是具备复利效应的第二天语言