ArcColdString:引用计数字符串压到 8 字节
cold-string 是一个把不可变 UTF-8 字符串表示压到 1 个 usize(64 位上 8 字节)的 crate,当前 0.4.0。短字符串最多内联 8 字节;更长的字符串用变长长度头,堆上额外开销大约 1–9 字节,而不是常见的 pointer+length 16 字节对。Option<ColdString> 没有额外内存开销。MSRV 1.60,支持 no_std,仓库 tomtomwombat/cold-string。
同一 crate 提供引用计数版 ArcColdString,句柄仍是 8 字节,内联串直接拷贝,不走引用计数。堆上再加 AtomicUsize 引用计数;也有 ArcColdString32 / 16 / 8,用更窄的原子计数缩小堆头。作者给出的 64 位理论开销(不含 UTF-8 载荷):8 字节串 Arc<str> 32、arcstr::ArcStr 24、ArcColdString 0(内联);128 字节串分别是 32 / 24 / 17。预分配 Vec 里每条唯一 8 字节串的 RSS:Arc<str> 约 47.1 字节,ArcColdString 约 8.0 字节。单线程 clone/drop 与 Arc<str>、arcstr 同量级。crates.io:cold-string。
原文链接:https://github.com/tomtomwombat/cold-string
ying-profiler:生产环境用的采样内存分析
ying-profiler 是原生 Rust 采样内存分析器,跟踪 retained memory 和分配次数,面向异步 Rust 生产环境。作者对比现有方案后写它:资源占用更低,产物更易读,对 async/Tokio + tracing 的栈更有用,并支持 retained memory。功能包括采样、跟踪 realloc、跳过展开栈里的内联 ::poll:: 帧、泄漏/大块未释放检测、自动 flamegraph、分配寿命直方图、按总分配或 retained 排 top stack,以及 ProfilerRunner 在内存变化明显时周期性写报告。
用法是把它设成 #[global_allocator],再 start_profiling()。分配器层只在内存里累积统计;ProfilerRunner 决定检查间隔、触发阈值和输出;start_profiling() 是默认 runner 的便捷入口。示例 ying_example 会跑缓存负载和模拟泄漏,在 ying-profiles/ 写下带时间戳和 MB 数的 .report / .svg。仓库 velvia/ying-profiler,Apache-2.0,当前约 42 star。
原文链接:https://github.com/velvia/ying-profiler
混合后量子 KEM:加 X25519 封装慢近 3 倍仍默认开
pqc-kem 是纯 Rust 的 ML-KEM(FIPS 203)实现,同时提供 X25519 hybrid 和 X-Wing。作者在 pqc-kem 0.3 上用 criterion、固定种子 RNG,在 Xeon Platinum 8488C 上测了三轮。ML-KEM-768 单独 keygen / encapsulate / decapsulate 约 51.7 / 54.6 / 64.0 µs;加上 X25519 hybrid 后约 97.2 / 155.8 / 114.4 µs,对应约 1.88x / 2.85x / 1.79x。相对单次握手,发送端大约多 100 µs,接收端大约多 50 µs。
产品默认打开 hybrid:只给密钥交换加对冲,因为今天录下来的会话以后无法补救;签名侧的 Ed25519 hybrid 在 pqc-sig 里默认关闭,理由是坏掉的签名方案可以轮换重签。X-Wing 与自家 HKDF hybrid 各操作差距在 4% 以内,并在共享密钥里绑定 X25519 密文和公钥,作者建议新部署优先用它。基准与写法见仓库 0x307/pqc-kem 的 BENCHMARKS.md。
原文链接:https://www.reddit.com/r/rust/comments/1wvf3v6/we_measured_hybrid_postquantum_key_exchange_in/
Kobzol:上游 Rust 八九月维护报告
这是 Sovereign Tech Fellow Kobzol 的第二份双月工作报告,覆盖 2026 年 8–9 月在上游工具链上的工作。重点之一是缩小 target 目录:在 Cargo 新 build dir layout 实验结束后,nightly 默认启用 -Zembed-metadata=no,元数据只留在 .rmeta,再经 --extern 传给 rustc。作者已提交把编译器侧 -Zembed-metadata 稳成 -Cembed-metadata 的报告并进入 FCP;Cargo 侧也有对应稳定报告。计划一段时间内双旗并存,避免 nightly 断。
报告还写到编译时间实验(arena 分配等收获有限)、Polonius、并行前端推进、ARM 上的编译器性能测量、增量编译、合并队列、Josh subtree 迁移,以及跟踪 rust-lang crates、thanks.rust-lang.org、rustup-components-history 等维护项。完整 PR 列表和统计在原文。
原文链接:https://kobzol.github.io/rust/2026/09/30/stf-august-september-2026.html
From Rust中文社区 Mike
社区学习交流平台订阅:
评论区
写评论还没有评论