Lobsters | 📄 原文链接 | 2026-10-29 收录

给 Rust 生态重写一个 tar 解析器:快一倍,还要消灭解析差异

来源:astral.sh — 2026-10-27

📋 概述

uv 从 0.13 起改用自研的 tar-codec 解析源码分发包,速度约为旧的 astral-tokio-tar 两倍,同时大幅缩小解析差异和其他安全风险敞口。文章先花了很长篇幅讲 tar 这个格式的历史包袱:它是 512 字节定长块的磁带格式,V7、UStar/pax、GNU tar 三支演化出各自的长度与文件名限制,而块内空洞填什么格式毫不过问。正是这种松弛让攻击者能构造出「同一个包,PyPI 看到的是安全的,uv 解出来是危险的」解析差异。最终团队判断 tokio-tar 家族天生过于宽松,决定从零重写。

🔑 核心要点

💡 金句

tar-codec grew directly out of that effort: we ultimately came to the conclusion that the tokio-tar family was too lenient by design.
← 返回 Lobsters 首页