Linus Torvalds Vents over "Completely Crazy Rust Format Checking"7 months agohttps://www.phoronix.com/news/Linus-Torvalds-Rust-FormattingLinus Torvalds批评了直接渲染管理器(DRM)子系统拉取请求中的糟糕文本格式。Torvalds对Rust代码格式化(尤其是自动化工具'rustfmtcheck')表达了不满。他反对Rust格式规则的不一致性,特别是针对'use'语句的规则,称其'无脑且完全疯狂'。Torvalds质疑当前Rust格式化启发式方法的可维护性和长期影响。他寻求一种'合理'的解决方案,以提高Rust代码格式的清晰度和一致性。
Arenas in Rust7 months agohttps://russellw.github.io/arenas由于硬件兼容性差,双向链表在现代编程中并不常用。在Rust中,由于基于所有权的内存管理机制,数据结构中的循环引用具有挑战性。竞技场(Arenas)和句柄(handles)通过使用整数索引而非直接引用提供了一种解决方案,从而规避了Rust的某些复杂性。与传统手动内存管理不同,竞技场内存管理通过防止任意内存覆写来维护内存安全。在Rust中,内存安全对安全性至关重要,特别是对于处理对抗性输入(如网页浏览器)的程序而言。
What Julia has that Rust desperately needs7 months agohttps://jdiaz97.github.io/blog/what-julia-has-that-rust-needs/Rust生态面临碎片化问题,例如ffmpeg-next、ffmpeg-the-third和rffmpeg等多个库的分叉版本导致混乱。Julia的解决方案是按领域将包组织到GitHub组织中(例如生物学的BioJulia、数据的JuliaData)。Julia方法的优势包括更好的可访问性、社区支持、减少分叉噪音以及提升生产力。虽然可能出现治理问题,但集中化、自组织努力的优势显著。作者主张Rust采用类似的组织结构以改善其生态系统。
Servo GTK7 months agohttps://blogs.gnome.org/nacho/2025/10/01/servo-gtk/作者回顾了自上次博客发布后长达9年的空白期。在亚马逊任职期间,他们作为研究项目开发了一个GTK部件,用于在GTK应用中嵌入Servo网页渲染引擎。该项目旨在评估Servo是否具备替代WebkitGTK的成熟度。作者称赞Rust语言和gtk-rs绑定的易用性。发现Servo虽未达到生产就绪状态,但易于嵌入且能快速搭建环境。Servo社区积极响应,能快速解决问题。项目已托管在GitHub:https://github.com/nacho/servo-gtk。创建了待优化问题的issue,欢迎社区贡献。分享的截图展示了项目的早期成果。评论中人们期待Servo能成为GTK生态中Blink/WebKit的替代方案。
Vec<T>7 months agohttps://marma.dev/articles/2025/under-the-hood-vec-tRust中的Vec<T>通过多层抽象构建,兼顾安全性与效率。其结构始于原始指针(*const u8),被包裹在NonNull<u8>中以确保绝不会为空。Unique<u8>添加所有权语义,表明对所指数据的独占所有权。RawVec<T>负责内存分配、扩容和释放,将容量管理与元素追踪分离。Vec<T>整合RawVec(内存管理)和len(追踪已初始化元素)以提供安全的用户友好API。Vec的每一层结构都有特定用途,在零运行时开销的前提下强化Rust的内存安全保证。这种设计支持标准库中的复用,如VecDeque<T>等类型也采用相同架构。理解Vec的内部机制,可窥见Rust如何将底层控制与高级安全性完美结合。
Goiaba: An experimental Go compiler, written in Rust7 months agohttps://github.com/raphamorim/goiabaGoiaba 是一个用 Rust 编写的实验性 Go 解析器和 WebAssembly 编译器。它将 Go 源代码转换为适用于浏览器及其他 WASM 环境的 WebAssembly 字节码。核心功能包括将 Go 解析为抽象语法树 (AST)、将函数编译为 WASM 模块,并支持 Go 基础语言特性。可导出 Go 函数供 JavaScript、Rust(通过 C ABI)和 Zig(通过 C ABI)调用。提供命令行界面和面向 Rust 项目的编程接口。通过 `cargo install goiaba` 安装,文档提供使用示例。支持多种 Go 结构:函数、控制流、算术运算、结构体、数组等。导出函数需使用 `//export` 指令实现 WASM 可调用性。主要组件包含解析器、AST、翻译器、编译器和命令行工具。未来计划优化:死代码消除、常量折叠等编译优化。当前限制:无垃圾回收、标准库支持有限、缺少并发原语。采用 BSD-3-Clause 许可证,版权所有 Raphael Amorim 2024。
Igalia, Servo, and the Sovereign Tech Fund7 months agohttps://www.igalia.com/2025/10/09/Igalia,-Servo,-and-the-Sovereign-Tech-Fund.htm...Igalia获得主权技术基金资助以推进Servo网页引擎开发Servo是由Rust编写的现代化并行网页引擎,自2023年起由Igalia维护Servo开发的三个重点领域:初始无障碍支持、WebView接口及项目维护初始无障碍支持旨在为屏幕阅读器和辅助技术实现基础功能WebView接口开发将使Servo能嵌入桌面和移动应用程序项目维护包括问题分类、代码审查、版本发布和治理支持Igalia强调Servo在未来网页引擎和开源创新中的重要作用
Show HN: Modeling the Human Body in Rust So I Can Cmd+Click Through It7 months agohttps://github.com/lantos1618/open_human_ontology采用Rust构建的全面、类型安全的人体生物学计算模型包含13个完整器官系统及其详细功能由313个Rust源文件组成,约10万行代码支持生物系统的模拟、分析与诊断包含心血管、呼吸、神经等系统的详细模型提供BMI、心输出量、肾小球滤过率等健康指标MIT开源协议,欢迎贡献代码通过临床标准和医学文献验证持续开发中,当前版本0.1.0(2025年10月10日)
Patina: a Rust implementation of UEFI firmware7 months agohttps://github.com/OpenDevicePartnership/patinaPatina是一个基于Rust实现的UEFI固件项目,旨在用纯Rust替代基于C的组件以提升安全性和稳定性。该项目目前处于测试阶段,欢迎进行平台测试和集成反馈。发布流程包括在GitHub上审查草稿版本、更新版本号以及监控发布工作流。文档可在代码库中获取,并支持通过mdbook工具自行托管。安装需要Rust环境及cargo-make、cargo-llvm-cov等附加工具。Patina支持三种构建目标:aarch64、x64或本机架构,提供开发版和发布版选项。测试涵盖单元测试与实机平台测试,支持覆盖率统计和基准测试命令。Rust版本应每季度更新一次,由贡献者团队审查合并拉取请求。近期工作重点聚焦稳定性提升、功能扩展(组件增长和MM Core支持)及生态集成。鼓励社区贡献以加速重点领域的开发进度。
Markdown2pdf – pure md to pdf transpiler implementation in Rust7 months agohttps://github.com/theiskaa/markdown2pdfmarkdown2pdf 是一个将Markdown转换为PDF的命令行工具和库它使用词法分析器解析Markdown,并通过PDF模块生成文档支持通过TOML配置文件自定义字体、颜色、间距和排版属性提供二进制程序和库两种形式,基于Rust构建以确保性能和内存安全支持完整的Markdown语法,包括标题、列表、代码块、链接和图片支持多种安装方式:Homebrew、Cargo或各平台预编译二进制文件命令行支持文件路径、直接字符串内容或URL作为输入源库函数包含parse_into_file()和parse_into_bytes()以实现灵活的PDF生成配置方式支持默认值、文件配置或嵌入式配置(适用于独立可执行文件)高级用法允许直接与词法分析器和PDF生成组件交互具备优雅的错误处理机制,遇到配置问题时自动回退到默认样式
We need (at least) ergonomic, explicit handles7 months agohttps://smallcultfollowing.com/babysteps/blog/2025/10/13/ergonomic-explicit-hand...文章探讨了Rust是否应该要求显式调用handle/clone来实现符合人体工程学的引用计数(RC)。Dioxus框架主张在高级GUI应用中无需显式调用handle/clone,认为这会带来不必要的干扰。作者支持通过符合人体工程学的设计来实现显式操作,这符合Rust在保持可用性的同时赋予控制权的哲学。在底层应用中,显式创建句柄对性能、内存使用和正确性至关重要。Rust的显式特性有助于避免意外情况和调试难题,例如追踪引用计数和内存泄漏问题。来自Swift和'bytes'库的案例证明了显式句柄创建对调试和资源管理的益处。文章强调了Rust的多功能性,旨在同时适用于底层(如内核)和高级(如GUI)应用场景。作者建议先采用显式句柄设计,后期再考虑自动克隆的可能性,优先保证显式性。讨论聚焦Rust的核心精神:在底层控制与高级可用性之间取得平衡,避免人为简化带来的问题。
Avian Physics 0.47 months agohttps://joonaa.dev/blog/09/avian-0-4《鸟类物理引擎0.4版发布:重大性能提升与新增功能》性能提升包括3倍速度提升与更优的多核扩展能力新增功能:求解器刚体、多线程图着色算法、睡眠/唤醒模拟岛系统、力系统重构、关节改进、体素碰撞体及Bevy 0.17支持求解器刚体优化缓存局部性并为宽SIMD指令集支持铺路图着色技术实现无竞态条件的并行约束求解模拟岛系统优化大型游戏场景中的睡眠与唤醒机制力系统API重新设计,提升易用性与模块化程度关节系统改进包括参考坐标系、阻尼、作用力及碰撞禁用功能新增体素碰撞体,可高效表现《我的世界》等体素世界数据Bevy 0.17支持包含更新版碰撞事件与系统集命名规范接触点API改进:提供世界坐标点、法向速度及精确冲量数据新增基准测试CLI工具,用于性能分析与多线程扩展评估未来规划涵盖:宽SIMD指令集、增强多线程、BVH广相检测、Peck碰撞检测算法、CoACD凸体分解及新一代关节求解器
RustPython: A Python Interpreter Written in Rust7 months agohttps://rustpython.github.io/RustPython 是一个用 Rust 编写的开源 Python 3 解释器。它可以嵌入到 Rust 程序中进行脚本编写,或编译为 WebAssembly 以在浏览器中执行。RustPython 采用 MIT 许可证授权。其他 Python 实现包括 CPython、Jython、IronPython、PyPy 和 Stackless,各具独特优势。Jython 将 Python 2 编译为 Java 字节码以实现 JVM 集成。IronPython 与 .NET 集成,允许使用 .NET 框架和 Python 2 库。RustPython 旨在为 Rust 提供类似的集成优势,并支持 WebAssembly 执行。
Ideas on Glitching in Rust7 months agohttps://tritium.legal/blog/glitchTritium 致力于实现桌面排版软件的稳定性,利用 Rust 的借用检查器来避免内存损坏。避免崩溃和数据损坏是关键,采用了“Don't Panic”等策略并限制递归深度。在调试模式下,捕获堆栈轨迹有助于无需复现即可调试问题。通过宏 'panic_or_return' 在发布版本中优雅处理意外状态,使程序能继续运行。布局代码中的递归设有上限以防止堆栈溢出,调试版本会直接报错,而发布版本会截断至设定限制。
Show HN: Halloy – the modern IRC client I hope will outlive me7 months agohttps://github.com/squidowl/halloyHalloy 是一款用 Rust 语言编写并使用 Iced GUI 库开发的开源 IRC 客户端。支持 Mac、Windows 和 Linux 平台。提供最新发布版和主分支的文档。可通过 libera.chat 的 #halloy 频道获取社区支持。已在 Flathub 和 Snap Store 上架。功能包括:IRCv3.2 协议支持、SASL 认证、DCC 文件发送、键盘快捷键和自动补全。支持消息通知、多频道切换、命令栏、自定义主题和便携模式。采用 GPL-3.0 许可证发布。问题与建议可提交至 GitHub 仓库反馈。
Upcoming Rust language features for kernel development7 months agohttps://lwn.net/Articles/1039073/Rust for Linux项目正在推动对内核开发有益的Rust新语言特性的开发。即将到来的三个关键Rust语言特性是字段投影(field projections)、原地初始化(in-place initialization)和任意self类型(arbitrary self types)。字段投影旨在泛化指向结构体字段的指针投影能力,提升内核代码中自定义智能指针的易用性。任意self类型将允许方法直接接受智能指针(如Pin或Arc),简化对封装类型的方法调用。原地初始化致力于让直接在最终内存位置创建并初始化结构体的操作更符合人体工学,这对大型或固定(pinned)结构体尤其有益。Rust for Linux项目的聚焦作用通过协调志愿者力量,帮助优先推进这些特性的开发进程。内核开发者还提到特化(specialization)和特质(trait)中的常量函数(const functions)也是期望的特性。这些特性的开发具有协作性,内核开发者提供反馈,Rust语言团队成员则负责具体实现工作。
Renaming the default branch of Rust-lang/rust7 months agohttps://blog.rust-lang.org/inside-rust/2025/10/16/renaming-the-default-branch-of...rust-lang/rust 仓库的默认分支将于2025年11月10日从'master'更名为'main'。选择'main'作为新名称是因为它是GitHub新创建仓库的默认分支名称,并且可以利用GitHub内置的重命名工具。假设默认分支为'master'的工具应改用'HEAD'引用,以确保重命名前后的兼容性。重命名后,如果贡献者的远程仓库名为'origin',则需要在本地仓库中运行特定命令进行同步。rust-lang/rust的分支拥有者可以按照GitHub的指导将其默认分支重命名为'main'。
bolt-ts: A TypeScript Compiler Implemented in Rust7 months agohttps://github.com/bvanjoi/bolt-tsbolt-ts 是一个用 Rust 实现的 TypeScript 编译器它复用了原始 TypeScript 编译器 (tsc) 的代码基准测试显示:在配备 36GB 内存的 Apple M3 Max 芯片上,bolt-ts 比 ts-go 快 2.5 倍,比 tsc 快 5 倍核心功能已实现但需要优化完善待改进项包括:解析器增强、模块解析、类型检查修复、输出生成等功能
Biff is a command line datetime Swiss army knife7 months agohttps://github.com/BurntSushi/biffBiff 是一个用于日期时间运算、解析和格式化的命令行工具。采用 MIT 或 UNLICENSE 双协议授权。建议阅读用户指南以理解高级概念。支持多种日期时间格式(RFC3339、RFC9557、自定义 strftime)。可打印当前时间、格式化时间及处理多个相对时间。支持时区转换和按指定增量四舍五入。允许对当前时间添加时长(周、月等)。计算自过去日期至今的精确时长(可控制精度)。将日志文件中的时间戳重新格式化为本地时间。生成日期序列(如下5个周一/周三/周五)。查找未来月份中最后的工作日或第二个周二。集成 Git 用于排序和格式化提交日期。提供 Windows、macOS 和 Linux 的预编译二进制文件。可通过 `cargo install biff-datetime-cli` 安装。需启用 `locale` 特性以获得区域化支持。基于 Jiff 实现日期时间逻辑,ICU4X 实现本地化。不兼容 POSIX `date` 命令,专注 Jiff 功能集。使用 Rust 编写,支持 musl 构建静态 Linux 二进制文件。通过 `cargo test` 和 `cargo insta` 快照测试进行验证。
Flowistry: An IDE plugin for Rust that focuses on relevant code7 months agohttps://github.com/willcrichton/flowistryFlowistry是一个用于分析Rust程序中信息流的工具,帮助开发者理解代码依赖关系。它集成在IDE中并提供'聚焦模式',能高亮显示相关代码同时淡化无关部分。Flowistry可作为VSCode插件使用,也支持从源码安装,并提供了具体的安装步骤说明。该工具有一些局限性,例如不能完全支持内部可变性(如Arc<Mutex<T>>),且每次只能分析单个函数。Flowistry使用Rust的MIR图进行分析,但在此过程中可能会丢失部分源码级别的信息。文档中特别注明了在NixOS系统或ARM架构设备(如M1芯片Mac)上的安装问题,以及潜在的rustup冲突。这是一个活跃的研究项目,团队正在持续开发以改进分析技术和交互模式。