Andrew Gallant

RSS: https://burntsushi.net/index.xml
Andrew Gallant(burntsushi)的技术博客,ripgrep 作者,关于 Rust 编程与开源工具。

脑炎:一位程序员的确诊与康复之路

知名程序员 Andrew Gallant(ripgrep 作者)亲述患上抗NMDA受体脑炎的完整经历。这一切始于类似流感的症状——心慌、盗汗、失眠和从未有过的深度焦虑与恐慌发作。随后发展为慢性颌痛、平衡失调,甚至出现自杀意念、妄想和幻听。因被误诊为焦虑症和精神分裂症,他一度被送入精神病院。幸运的是,通过人脉转入波士顿 Brigham and Women's 医院神经科后,医生在确诊前就使用IVIG和类固醇治疗,MRI发现脑部病灶,最终脑脊液抗体检测确诊为抗NMDA受体脑炎。目前他正逐渐康复,并参与satralizumab新药临床试验。文章提供了该罕见病的完整科普(病理机制、诊断方法、治疗流程),也向病中不离不弃的妻子Kaitlyn和给予极大支持的雇主Charlie Marsh表达了真挚感谢。这是一篇勇气十足、信息量丰富的个人叙事,兼具医学价值与情感力量。
评论点赞收藏73 天前

将正则引擎内部实现作为独立库开放

Rust 官方的 regex 库维护者 burntsushi 撰文详解重写历程:为改善内部组合性并安全添加优化,他将正则引擎核心拆分为 regex-automata 独立库,并以 API 形式对外开放——据作者称这是首个达到此开放程度的正则库。文章包含重写动因(原架构耦合紧、优化难维护)、如何通过分层设计解决、以及 regex-automata 各模块(DFA/NFA/ hybrids/ 向前匹配等)的用法导览。作者是 Rust 生态中最活跃的正则引擎开发者之一,所有内容来自一线重构经验,非泛泛之谈。适合有正则基础、对有限自动机实现感兴趣的 Rust 程序员阅读。
评论点赞收藏1137 天前

Rust 字节字符串库 bstr 1.0 发布

Rust 知名开发者 Andrew Gallant(BurntSushi,ripgrep 作者)正式发布了 bstr 1.0——一个以字节序列为操作对象的 Rust 字符串库。与 Rust 标准库保证 UTF-8 合法性不同,bstr 采用"约定为 UTF-8"的设计,允许处理任意字节序列同时提供字符串语义操作。本文深入解释了这一设计的实际动机:文件系统路径、网络协议、旧编码文本等场景中数据往往不是合法 UTF-8,但搜索、分割、比较等操作在字节层面仍然有意义。文章包含 API 概览、设计思路和代码示例,是 Rust 生态中处理非标准文本数据的重要实践参考。
评论点赞收藏1438 天前

在 Rust 中使用 unwrap() 是没问题的

Rust 核心生态维护者(ripgrep、regex 库作者)Andrew Gallant(BurntSushi)撰文深入回应当社区关于 unwrap 使用的长期争议。作者延续其 2015 年经典错误处理文章的立场,以 FAQ 形式逐条回应各种反对观点。核心论点:在测试/示例代码中,以及当 panic 表示程序 bug 时,合理地使用 unwrap 完全没问题——这一做法也体现在 Rust 标准库和核心生态 crate 的实际实践中。文章由 Rust 社区最具权威性的声音之一撰写,提供了清晰的原则框架,帮助开发者区分"适当使用"与"滥用"的界限,也给出了足够背景让非 Rust 程序员理解其设计哲学。
评论点赞收藏1468 天前

System76 Darter Pro 上的 Archlinux 配置体验

知名开发者 Andrew Gallant(ripgrep 作者)分享他在 System76 Darter Pro (darp6, Coreboot) 上安装运行 Archlinux 的第一手实测体验。这是他自 2012 年 ThinkPad T430 以来的首次笔记本升级,内容覆盖系统配置过程、硬件兼容表现和整机使用评价,直接面向正在寻找 Linux 友好笔记本的 Archlinux 用户。来自社区核心开发者的真实踩坑记录,有具体机型、具体问题和具体结论,对 Linux 笔记本选购和 Arch 安装配置有实际参考价值。
评论点赞收藏2392 天前

我的开源故事

Andrew Gallant(ripgrep、regex 等多款知名 Rust 库的维护者)打破以往只写技术内容的惯例,分享他与自由与开源软件(FOSS)之间的个人故事。这不是对任何维护者行为的回应,也不是理想行为指南,而是一段真诚的自我反思。他强调没有唯一的"好维护者"路径,每个人都有自己的应对方式。文章明确表示这不是求救信号,也不是关于改变 FOSS 经济或改善心理健康的讨论,而是希望通过分享个人视角,在 FOSS 社区中建立更多理解、共情和信任。适合所有参与 FOSS 的人阅读。
评论点赞收藏2400 天前

Rust 与 CSV 解析

本文是 Rust 知名开发者 Andrew Gallant(BurntSushi)针对 Rust 初学者的 CSV 读写实战教程。正值 csv 1.0 发布,文章用大量示例讲解基础概念,手把手教你在 Rust 中解析和生成 CSV 数据。教程自带完整 API 文档和 GitHub 仓库链接,也可直接阅读官方文档中的教程版本。适合刚接触 Rust 但想快速上手真实数据处理的读者,有经验的 Rust 程序员也能快速 skim 获取关键点。作者是 ripgrep、regex 等知名库的维护者,教程质量有保障。
评论点赞收藏3372 天前

ripgrep 比 {grep, ag, git grep, ucg, pt, sift} 更快

核心看点:ripgrep 作者亲自出手,用 25 个基准测试证明——在代码搜索场景下,ripgrep 在速度和正确性上同时碾压 grep、ag、git grep 等主流工具,而且是唯一一个 Unicode 支持不拖后腿的方案。作者 Andrew Gallant 是 ripgrep 及其底层正则引擎的作者,具备 2.5 年 Rust 文本搜索实战经验,每项 benchmark 都有详细解释,并公开邀请用户提交复现不了的反例来讨论。文章还提出了一个反直觉结论:多文件搜索时用内存映射(memory map)反而更慢。适合有一定命令行和 Unicode 背景的开发者阅读,是一篇有实测、有方法、有可复现性的硬核技术测评。
评论点赞收藏3613 天前

用自动机与Rust索引16亿个键

核心看点:知名Rust开发者BurntSushi(Andrew Gallant)手把手讲解如何用有限状态机(FST)构建高性能有序字符串索引,并用自己实现的Rust库fst在134GB的Common Crawl数据上成功索引了16亿个URL。文章从FST作为数据结构的理论基础讲起,给出完整的Rust实现和API文档,再通过命令行工具展示构建方法,最后用真实的大规模实验验证性能。还涉及内存映射、正则表达式自动机交运算、Levenshtein模糊搜索等进阶技术。面向有基本编程和数据结构经验的读者,无需自动机理论或Rust知识。这篇文章是搜索引擎、信息检索领域的经典技术分享,对Rust高性能编程和索引技术感兴趣的人不容错过。
评论点赞收藏3930 天前

Rust 错误处理完整指南

Rust 社区知名开发者 BurntSushi(ripgrep 作者)撰写的经典错误处理教程。文章系统性地讲解了 Rust 的两大错误处理范式——从基础的返回值模式到标准库提供的? 运算符、From trait 等简洁方案,并结合历史版本演进(2015 年原文→2018 年? 运算符更新→2020 年代推荐的 Box/anyhow 方案),展示了 Rust 错误处理生态的成熟过程。作者逐层递进:先讲 naive 写法为何冗长,再给出标准库惯用法,最后推荐当下最佳实践。适合已有一定 Rust 基础的开发者深入学习,能真正减少日常开发中处理错误的心智负担。
评论点赞收藏4111 天前

Rust 语法扩展与正则表达式实现

本文是 Andrew Gallant(ripgrep、regex 作者)在 2014 年写下的经典技术博客,记录了他如何为 Rust 实现受 RE2 启发的正则表达式库,并利用 Rust 的语法扩展在编译期将正则表达式编译为原生机器码。文章详细拆解了语法扩展的编写方法、如何实现编译期与运行时 regex 的统一 API,以及"超前编译"(类似编译期函数执行)的设计思路。虽然文中代码示例已随旧版编译器接口失效,但其背后的设计决策和实现策略对 Rust 开发者理解语法扩展机制仍有参考价值。适合对 Rust 编译器插件或高性能正则实现感兴趣的读者。
评论点赞收藏4499 天前

在Go中编写类型参数化函数

Go 早期缺乏泛型,Andrew Gallant(ripgrep 作者)通过自建 ty 包实现了运行时安全的类型参数化函数。文章深入分析 Go 结构化子类型系统的局限,展示了在保持调用方便利性的前提下,用反射和接口安全处理多类型参数的具体方案。对于理解 Go 类型系统的历史演进、泛型方案出现前的工程取舍,有第一手的实践参考价值。
评论点赞收藏4879 天前

NFLGame:用 Python 程序化获取 NFL 比赛实时数据

一位既是程序员又是范特西橄榄球重度玩家的开发者,痛陈 NFL 比赛数据获取方式的落后:缺少好用的开源工具,现有方案要么过时、要么收费闭源。他决定自己动手,构建一个名为 NFLGame 的 Python 库,目标是让开发者能以编程方式轻松获取 NFL 实时比赛数据。文章充满了真实的使用痛点和个人驱动力,是一篇有血有肉的技术项目启动宣言。
评论点赞收藏5099 天前

在联想 Thinkpad T430 上运行 Arch Linux

Andrew Gallant(ripgrep 作者)的个人博客文章,记录了在 ThinkPad T430 上安装、配置、调优到日常使用 Arch Linux 的完整笔记。核心价值在于一手实操经验:硬件兼容性踩坑、驱动与内核参数调优、电源管理优化等具体细节,对同一机型的 Arch 用户有直接参考意义。作者明确给出结论——Arch Linux 运行体验非常好,并分享了从零到可日常使用的全流程笔记,属于少见的个人真实记录而非通稿搬运。
评论点赞收藏5159 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。