Rust 1.97 修复了 pin!() 的一个隐蔽未定义行为:Deref 强制转换如何绕过 Pin 的保证
Rust 1.97 在 7 月 9 日发布,从变更列表看,有个修复很容易被当成细节改动一带而过:阻止 pin!() 宏中的 Deref 强制转换(PR #153457)。但这个"细节"实际上修复了一个
阅读全文Rust 1.97 在 7 月 9 日发布,从变更列表看,有个修复很容易被当成细节改动一带而过:阻止 pin!() 宏中的 Deref 强制转换(PR #153457)。但这个"细节"实际上修复了一个
阅读全文在 Rust 项目的 CI 配置里,RUSTFLAGS="-D warnings" 几乎成了标配。它的逻辑很直接:把警告当成错误,确保代码库保持干净。但这个用法其实是 hack,不是 Cargo 设计
阅读全文Rust 1.97.0 在 7 月 9 日正式发布,其中一个变更值得每个 Rust 开发者停下来看一眼:v0 符号命名方案已经成为唯一的默认选项,旧版命名被彻底移除。这个变化不像新语法特性那样显眼,但
阅读全文当开发者想让 LLM 调用外部工具时,需要向模型提供工具的定义——通常是一份 JSON Schema,描述函数的名称、参数类型和约束。这个过程在 Python 生态中有成熟的方案:Pydantic 模
阅读全文如果你写过中等规模的 Rust 项目,一定见过这样的代码:一个结构体有七八个字段,其中大部分可以用 Default::default() 初始化,但总有一两个字段需要特定的初始值。于是要么写一个手动的
阅读全文在 Rust 1.96.0 的更新列表中,有一项改动看起来不起眼,却触及了 Rust 宏系统与条件编译机制之间一个长期存在的缝隙:**允许将 expr 元变量传递给 cfg!()**。如果你写过复杂的
阅读全文如果你写过 Rust,大概率遇到过这样一个场景:定义一个结构体来存储区间信息,结构体想实现 Copy,但 Range<usize> 却不是 Copy 的。#[derive(Clone, Copy)]s
阅读全文2026 年 6 月 30 日,Rust 团队发布了 1.96.1 点版本。这个版本同时修复了三个层面的问题:libssh2 的安全漏洞、Cargo HTTP 客户端的可靠性缺陷,以及一个 MIR 优
阅读全文任何一个写过递归算法的开发者,都曾被栈溢出困扰过。编译器承诺会做尾调用优化(Tail Call Optimization, TCO),但它的实现从来不是一项保证——优化器今天做、明天可能不做,换个架构
阅读全文如果你是 Rust 开发者,大概率在 CI 里见过这行命令:cargo +nightly miri test。Miri,Rust 的 MIR 解释器,能在不真正编译运行的情况下模拟执行代码,检测各式各
阅读全文上周,一个标记为"非常基础"的 PR 合入了 Rust 主线:Add very basic "comptime" fn implementation。这行提交信息的背后,是 Rust 编译器团队已经推
阅读全文Git 的底层实现一直是个「只可远观」的庞然大物——二十年间由上千名贡献者以 C 语言渐进式堆叠而成,测试套件超过 42000 项。现在,有人用 Rust 把它从零重写了一遍,而且整个过程大部分由 A
阅读全文创建 Vec 的方式有很多种:vec![] 宏、从迭代器 collect、反复 push。但有一个场景,长期以来只能用拼凑的方式解决——生成一个固定长度的 Vec,其中每个元素由下标决定。现在,Vec
阅读全文如果你在 crates.io 上发布过 Rust crate,那么你的文档很可能托管在 docs.rs 上。2026 年 5 月起,docs.rs 调整了一项持续多年的默认行为——从为 5 个目标平台
阅读全文如果你维护过一个 Rust 项目,大概率被问过这样一个问题:"Rust 的所有权系统真的值得学吗?用 C 加 Sanitizer 不也一样?"在过去的十年里,这个问题的答案一直停留在"更安全"和"足够
阅读全文2026 年 6 月 2 日,gRPC 官方团队发布了 gRPC-Rust 的正式路线图,明确了从客户端预览走向生产就绪的关键节点。这是继 5 月 Tonic 正式加入 CNCF gRPC 项目之后,
阅读全文维护一个像 Rust 编译器这样的大型项目,一个经常被低估的挑战是:如何管理那些依赖编译器内部 API、但又独立发展的子项目。Miri(未定义行为检测工具)、rust-analyzer(语言服务器)、
阅读全文hyper 是 Rust HTTP 生态中承上启下的核心层:上层是 Axum、reqwest、Tower 这些开发者直接接触的框架与工具,下层是 Tokio 这类异步运行时。理解了 hyper 的用户
阅读全文如果你在过去一年关注过 Rust 生态中的"系统库重写"趋势,大概率知道 Trifecta Tech Foundation 的名字。这个非营利组织先后用 Rust 重写了 zlib(zlib-rs)和
阅读全文写 Rust 代码时,你从什么时候开始知道自己的代码有问题的?是在 cargo check 的输出里,还是在 IDE 的红色波浪线出现的瞬间?这两个时间点的差距,就是 rust-analyzer 和
阅读全文Rust 的 Copy trait 是一个看似简单但影响深远的标记——它意味着一个类型的值可以通过简单的内存复制来传递,而无需调用 clone 或考虑所有权转移。过去几年里,标准库中一个不太起眼但持续
阅读全文Rust 社区的年度调查已经走到了第十个年头。2025 年末的这次调查收集了七千多份有效回复,数字本身或许不算惊艳,但当这些数据折射出开发者行为的变化——尤其是 AI 工具对学习方式、编码习惯乃至工具
阅读全文每个 Rust 开发者都知道 Option<&T> 的大小和 &T 完全一样——一个指针大小,没有任何额外字节。但如果你深究一下:None 不需要存储任何数据,而 Some(&x) 需要一个指针,编译
阅读全文翻开 Rust 1.96 的发布说明,兼容性部分有一行不起眼的条目:最低外部 LLVM 版本提升到 21。对于大多数用 rustup 安装 Rust 的开发者来说,这行字甚至不会出现在他们的编译流程里
阅读全文在 Rust 的类型系统中,NonZero 是一类特殊的存在。它们存在的唯一理由就是性能——通过 niche 优化让 Option<NonZero<u32>> 和 u32 自身占据相同的内存空间。但长
阅读全文Rust 的条件编译一直是这门语言最实用的设计之一。#[cfg(target_os = "linux")] 这类属性看似简单,但当它遇到 Rust 的宏系统时,一个深层矛盾长期存在:宏的片段规格(fr
阅读全文2025 年底,crates.io 累计下载量突破 1000 亿次。这个数字本身已经是开源世界的一个里程碑。但仅仅几个月后,这个数字变成了 2500 亿。不是 1100 亿,不是 1200 亿——是
阅读全文一个调用了超过两亿次的函数,还能再快 5 倍吗?image-rs 是 Rust 生态中最基础的图像处理库,几乎任何需要读图、写图、处理像素的 Rust 项目都会间接依赖它。它的 fast_blur 方
阅读全文Rust 1.95 于 4 月中旬发布后,下一个稳定版 1.96 预计在 5 月底与开发者见面。这个版本虽然没有颠覆性的语法大改,但在工具链、文档生成和标准库能力上有多项值得关注的改进。与此同时,Ru
阅读全文Rust 的 ORM 生态一直处在一个尴尬的位置。Diesel 功能强大但同步且学习曲线陡峭,SeaORM 覆盖了异步场景但构建偏重,SQLx 灵活但不是完整的 ORM。开发者经常面临一个选择:要么忍
阅读全文