< 返回版块

苦瓜小仔 发表于 2025-12-01 11:16

Tags:日报

文章《LLVM 即将支持恒定时间:在编译器层面保护加密代码》

Trail of Bits 为 LLVM 21 引入了原生常量时间(Constant-time)支持,旨在解决编译器优化意外引入时序侧信道漏洞的问题。

核心是新增了 __builtin_ct_select 内建函数,它能作为优化屏障,强制编译器在 x86 (cmov)、ARM (CSEL) 等架构上生成无分支的恒定时间机器码。

该功能不仅修复了现有加密库中的潜在风险,还计划未来支持常量时间算术运算,并有望被 Rust 和 Swift 生态采纳。

阅读:https://web.archive.org/web/20251125224147/https://blog.trailofbits.com/2025/11/25/constant-time-support-coming-to-llvm-protecting-cryptographic-code-at-the-compiler-level/

讨论:https://www.reddit.com/r/rust/comments/1p6pz3b/constanttime_support_coming_to_llvm_protecting/

oxdraw:声明式图表

  • 项目定位:这是一个基于 Rust 开发的“代码绘图”(Diagram as Code)工具,旨在融合声明式语法与可视化编辑的优势。
  • 核心亮点:支持使用 Mermaid 语法定义图表,同时提供 Web 可视化编辑器。用户既可以编写代码,也可以直接拖拽节点、调整连线和样式。
  • 独特机制:所有的可视化调整(如位置坐标、颜色)都会自动以 注释 的形式回写到 Mermaid 源文件中。这既保留了文件的纯文本特性以便于 Git 版本控制,又解决了传统代码绘图工具布局难以微调的痛点。
  • 功能特性:提供 CLI 工具用于将图表编译为 SVG/PNG 图片,适合 CI/CD 集成;支持“代码映射”(Codemaps)功能,可将图表节点链接到具体代码段。

仓库:https://github.com/RohanAdwankar/oxdraw

mea:异步运行时无关的异步原语和组合器

Mea(Make Easy Async)是一个与运行时无关的库,为异步 Rust 编程提供必要的同步原语。该库提供了一系列经过充分测试的高效同步工具,可与任何异步运行时兼容。

  • 功能组件:提供了一套经过充分测试的并发控制工具,涵盖 Mutex(互斥锁)、RwLock(读写锁)、Semaphore(信号量)、Barrier(屏障)、LatchCondvar 等。
  • 开发价值:解决了 Rust 异步生态中同步工具往往绑定特定运行时的问题,为开发者提供了统一且灵活的底层构建块,简化了异步状态管理。

仓库:https://github.com/fast/mea

Wolf-Lang:受 Lua 启发、静态类型的脚本语言

开发原因:作者想要一个可以轻松嵌入 Rust 应用程序(如游戏引擎)的脚本引擎,但同时具备编译时类型检查功能,以便及早发现错误。

主要特点:

  • 使用 Rust 编写: 旨在安全高效。
  • 可嵌入: 您可以轻松地在 Rust 和 Wolf-Lang 之间推送/拉取数据。
  • 静态类型: let int x = 10 (不再出现运行时类型意外)。
  • 熟悉的语法: 使用类似于 Lua/Ruby 的 if/end 、 while/end 代码块。

仓库:https://github.com/islamfazliyev/Wolf-Lang

讨论:https://www.reddit.com/r/rust/comments/1pam8s1/i_built_a_luainspired_statically_typed_scripting/

darwin-timeout:timeout 的替代,在睡眠、CPU 为零的情况下正常工作

GNU timeout 在 macOS 睡眠(如合盖)时会暂停计时,导致 CI 任务无法正确超时而挂起。原因是其底层(以及 Rust 标准库)依赖 mach_absolute_time,该时钟在系统休眠时会停止。

作者为此用 Rust 编写了 darwin-timeout,改用 mach_continuous_time(类似 Linux 的 CLOCK_BOOTTIME),确保休眠期间也能持续计时。

该工具提供 macOS 原生超时命令。即使在睡眠、CPU 为零的情况下也能正常工作,并输出 JSON 格式数据。GNU 的直接替代品,大小约 500KB。

仓库:https://github.com/denispol/darwin-timeout

讨论:https://www.reddit.com/r/rust/comments/1p9qxsd/i_discovered_why_gnu_timeout_pauses_when_my_mac/

--

From 日报小组 苦瓜小仔

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页