TPDE - x86-64 和 AArch64 的低延迟编译器后端框架
来自慕尼黑工业大学(TUM)的研究人员宣布了 TPDE,这是一个快速的编译器后端框架,主要目标是低延迟编译,适用于JIT编译或未优化构建。
它支持x86-64和AArch64平台,包含核心框架、编码生成工具和LLVM后端。
TPDE-LLVM比LLVM -O0快10到20倍,代码质量相当,可作为库、工具或集成到Clang/Flang中。
仓库:https://github.com/tpde2/tpde
论文:https://arxiv.org/abs/2505.22610
Reddit:https://www.reddit.com/r/rust/comments/1l1urjc/news_opensource_tpde_can_compile_code_1020x/
公告:ICU4X 2.0 正式发布
ICU4X 2.0 正式发布,这是Unicode的现代化、轻量级、可移植且安全的国际化(i18n)库。
ICU4X 2.0 在多个方面进行了重大改进,包括全新的语言环境对象范式、重写的DateTime组件、更新的C++/C/JS接口以及最新的语言环境数据。
该版本引入了语义化日期时间骨架规范,用户可以通过“字段集”和“选项”来选择和微调日期时间格式。
此外,ICU4X 2.0还引入了Preferences对象,用于更丰富、类型安全地管理用户偏好。
跨编程语言的改进包括对FFI的重大改进,如C/C++中的命名空间、智能指针和版本化ABI,以及JavaScript中的枚举、结构体和特殊方法的改进。
性能方面,多个组件得到了优化,例如规范化器和排序器。ICU4X 2.0还对内部数据存储类型进行了优化,更新了CLDR和Unicode版本,并重新组织了一些crate。
ICU4X 2.0的文档和教程可在其新网站 <icu4x.unicode.org> 上找到。
阅读:https://blog.unicode.org/2025/05/icu4x-20-released.html
Reddit:https://www.reddit.com/r/rust/comments/1l195oe/icu4x_20_released/
公告:Magisk v29.0 发布 - 超过 40% 的代码使用 Rust 重写
Magisk v29.0发布,此次更新虽看似微小,但整个代码库经历了重大重构与迁移。
自2022年4月起,Magisk的原生代码从主要使用C++逐步向Rust语言迁移,目前超过40%的原生代码已用Rust重写,且更多子系统重写正在计划中。
引入Rust并非单纯为减少内存安全问题,而是为了使用更现代的编程语言开发Magisk,Rust让代码更正确且开发更愉快。
此次更新还包括支持下载XZ压缩的模块zip文件、在系统动画关闭时禁用应用动画、支持使用空白文件节点系统无损删除文件、重新设计sepolicy补丁和注入逻辑以及改进TTY/PTY支持等。
Magisk 是一套用于定制 Android 系统的开源工具,由开发者 John Wu(@topjohnwu)开发。它支持 Android 4.2 及以上版本的设备,主要功能包括 获取和管理 Root 权限、模块化定制、无系统模式、隐藏 Root 状态。
阅读:https://github.com/topjohnwu/Magisk/releases/tag/v29.0
Reddit:https://www.reddit.com/r/rust/comments/1l1o7x1/over_40_of_the_magisks_code_has_been_rewritten_in/
公告:git-cliff 2.9.0 版本发布
git-cliff
2.9.0版本发布,这是一个从Git历史生成定制化变更日志的命令行工具。
新版本支持子模块,可通过配置文件选项recurse_submodules
递归生成子模块的变更日志。
新增了对传统提交规范的检查功能,通过设置require_conventional
选项,若发现不符合规范的提交将报错。
此外,还支持通过--config-url
指定远程配置文件,增加了commit_range
模板变量,改进了分支支持,允许禁用提交的拓扑排序,并修复了多个Bug。
阅读:https://git-cliff.org/blog/2.9.0/
Reddit:https://www.reddit.com/r/rust/comments/1l1ftxi/the_new_version_of_gitcliff_is_out_a_highly/
Crosvm - 在 ChromeOS 设备上运行 Linux/Android 客户机
crosvm 是一个使用 Rust 编写的、基于Linux KVM的虚拟机监视器(VMM),专注于简单性、安全性和速度。
它主要用于运行Linux客户机,最初是为了在ChromeOS平台上为运行原生应用提供安全边界。
与QEMU不同,crosvm不模拟架构或真实硬件,而是专注于半虚拟化设备,如virtio标准。
crosvm目前用于在ChromeOS设备上运行Linux/Android客户机。
仓库:https://github.com/google/crosvm
文章《Using embassy to make flashrom/flashprog compatible SPI flash progammer firmware》
作者:Arthur
这篇文章介绍了使用Rust语言和Embassy框架开发的Serprog串行烧录协议库,用于通过串行连接与微控制器通信,实现对闪存芯片的读写擦操作。
文章重点介绍了在Raspberry Pi Pico和STM32F103C8T6(蓝药片)开发板上实现Serprog协议的过程。
通过Rust的异步编程模型和硬件抽象层(HAL),Serprog能够高效地支持多种微控制器,并利用Embassy的异步功能优化了USB和SPI操作的性能。
此外,文章还探讨了通过USB 2.0和QSPI协议扩展Serprog以进一步提升性能的可能性。
阅读:https://blog.aheymans.xyz/post/serprog_in_rust/
Reddit:https://www.reddit.com/r/rust/comments/1l1fqnx/using_embassy_to_make_flashromflashprog/
文章《Reducing Cargo target directory size with -Zno-embed-metadata》
作者:kobzol
这篇文章介绍了一种通过使用 -Zno-embed-metadata
标志减少 Rust Cargo target 目录大小的方法。
该标志通过避免在.rlib
文件中重复存储元数据,仅在.rmeta
文件中保留完整元数据,从而减少磁盘空间占用。
使用此标志后,release
模式下的构建可以减少约36.3%的空间,而dev
模式下的减少幅度在9.5%到27.3%之间。
虽然对编译时间影响不大,但显著减少了磁盘使用。
文章还讨论了将此功能默认化的计划和潜在的兼容性问题。
Reddit:https://www.reddit.com/r/rust/comments/1l1gnoj/reducing_cargo_target_directory_size_with/
文章《How to deal with Rust dependencies》
作者:notgull
这篇文章探讨了Rust项目中依赖管理的问题。
作者通过分析ripgrep
和miniserve
两个项目,展示了Rust项目依赖数量的差异。ripgrep
有33个依赖,而miniserve
则有281个依赖。文章指出,依赖过多会增加安全审计的难度,并可能导致不必要的代码重复。
作者提出了几种解决方案,包括最小化依赖特性、使用替代的轻量级库(如futures-lite
替代futures
)以及避免使用过于复杂的依赖。
此外,作者还讨论了Rust中“安全隔离”依赖的概念,这些依赖通过安全包装来隔离不安全代码,从而提高整体安全性。
阅读:https://notgull.net/rust-dependencies/
Reddit:https://www.reddit.com/r/rust/comments/1l1p4d6/how_to_deal_with_rust_dependencies/
视频:The virtue of unsynn
Amos (fasterthanlime) 的 facet 库使用 unsynn,而不是 syn 作为过程宏的 Rust 语法解析库。
这个视频解释了 unsynn 有哪些优点。
facet:https://crates.io/crates/facet
unsynn:https://crates.io/crates/unsynn
观看:https://fasterthanli.me/articles/the-virtue-of-unsynn
Reddit:https://www.reddit.com/r/rust/comments/1l1g60n/the_virtue_of_unsynn/
Ratatui 挑战赛
Ratatui 团队发起“Rat in the Wild Challenge”挑战赛,鼓励开发者使用Ratatui构建最奇特、最疯狂或最出人意料的应用程序。
挑战目标是通过现实(和超现实)实验改进Ratatui的API,创造新用例并享受乐趣。
参赛项目需开源,并在7月31日前提交视频、照片或截图以及简短介绍。
评委由Ratatui维护者和特别嘉宾组成,获胜者将获得Ratatui围裙。
参赛者需年满18岁,比赛对全球开放,评审结果为最终决定。
公告:https://github.com/ratatui/ratatui/discussions/1886
Reddit:https://www.reddit.com/r/rust/comments/1l1k7vq/ratatuis_rat_in_the_wild_challenge/
--
From 日报小组 苦瓜小仔
社区学习交流平台订阅:
评论区
写评论还没有评论