cURL 2025年回顾:性能提升、安全挑战与代码演进

本文回顾了cURL工具在2025年的发展历程,涵盖了代码提交量、测试增长、版本发布、性能优化、QUIC支持演变、安全挑战以及多项被移除的旧功能,全面展示了这一核心网络工具的技术演进与社区动态。

让我们回顾并铭记今年带来的一些变化。

提交 今年我们在curl中提交了超过3,400次,比以往任何单一年份都多40%! 在2025年的某个时间点,项目中的所有其他作者添加到curl仓库的总行数现在已经超过了我。这意味着,在所有添加到curl仓库的历史总行数中,我现在贡献的已不足一半。 今年有超过150位个人贡献了被合并的提交。其中近一百位是首次贡献者。有十三位作者提交了十次或更多。 Viktor Szakats在2025年几乎每个月都贡献了最多的提交次数。 Stefan Eissing现在负责了29%产品源代码行的最新提交——而我的份额是36%。 大约有598位作者的贡献仍然“存活”在产品代码中。这比去年年底的635位有所下降。

测试 与去年12月相比,今年年底我们增加了232个测试(现在有2179个独立的测试用例),并且首次实现了每千行产品源代码对应超过十二个测试用例。 (当然,统计测试用例数量相当无意义且奇怪,因为单个测试可大可小,简单或复杂等等,但这是我们唯一的计数方式。)

发布 今年我们进行了八次发布,这是一个相当平均的数量:

  • 8.12.0
  • 8.12.1
  • 8.13.0
  • 8.14.0
  • 8.14.1
  • 8.15.0
  • 8.16.0
  • 8.17.0 今年没有发生重大革命性的功能或变化。 我们大幅降低了源代码复杂度。我们停止使用了一些我们认为经常导致错误或混淆的函数。我们提高了性能。我们减少了内存分配的数量。 我们增加了对HTTPS-RR(DNS记录)的实验性支持。 错误修复的频率在年底创下新高,curl 8.17.0版本包含了近450个错误修复。 今年我们开始发布候选版本。对于每个版本,我们在实际发布前上传一系列候选版本,以便人们可以帮助我们测试近乎完成的版本。这有助于我们在最终发布前而不是之后立即检测和修复回归问题。

命令行选项 今年结束时,我们比去年新年夜增加了6个curl命令行选项;现在总共有273个。

  • 8.17.0 – –knownhosts
  • 8.16.0 – –out-null, –parallel-max-host, –follow
  • 8.14.0 – –sigalgs
  • 8.13.0 – –upload-flags
  • 8.12.0 – –ssl-sessions

手册页 curl手册页持续增长;现在比去年多了500多行(7090行),这意味着即使按每个命令行选项对应的手册页行数计算,它也从上年的24.7增长到了26。

代码行数 libcurl在一年中仅增长了100行代码,而命令行工具增加了1,150行新代码。 libcurl现在略超过149,000行。命令行工具有25,800行。 大多数提交显然是为了改进产品而不是扩展它们。另请参阅下面的“移除支持”部分。

QUIC 今年,OpenSSL终于引入并发布了一个允许QUIC协议栈使用标准OpenSSL的API,从3.5版本开始。 作为这一变化的直接结果,在curl中使用OpenSSL QUIC协议栈已被标记为弃用,并计划在明年初移除。 由于我们在2025年也移除了对msh3的支持,我们期待在2026年curl仅支持两个QUIC和HTTP/3后端。

安全 今年,针对curl的AI垃圾安全报告数量激增。curl安全团队因此承担了大量额外工作。今年我们因此多次被媒体提及。 那些明显没有借助AI生成的报告在质量上也显著下降,而总体数量却增加了很多。这也增加了我们的集体工作量。 我们在2025年发布了九个curl CVE,严重性均为低或中。

AI改进 新一代由AI驱动的高质量代码分析器,主要是ZeroPath和Aisle Research,开始向我们涌来潜在缺陷的错误报告。到目前为止,我们已经修复了数百个作为这些报告直接结果的错误。 这还建立在我们定期对代码运行的一组代码分析器之上,我们当然也会修复它们报告的缺陷。

网络流量 在2025年底,我们看到每月有79 TB的数据从curl.se传输。这比去年同期(58 TB)增长了36%。 我们没有日志或分析,所以不确定所有这些流量是什么,但我们知道只有很小一部分是实际的curl下载。这其中的很大一部分显然不是由人类驱动的。

GitHub活动 每个月在curl的GitHub仓库中都会打开超过两百个拉取请求。 在秋季的一小段时间里,我们达到了零开放问题。 我们有超过220个独立的CI作业,在年底时每天花费超过25个CPU天来验证我们持续进行的更改。

仪表板 curl仪表板大幅扩展。我移除了一些不再准确的图表,但净变化总数仍然是我们从2024年12月的82个图表增加到2025年12月的92个独立图示。现在总共有259个单独的图(+25)。

移除的支持 今年我们从项目中移除了旧/遗留的东西,努力淘汰落后的部分,专注于重要事项,并确保curl的安全。

  • 对Visual Studio 2005及更早版本的支持(在8.13.0中移除)
  • Secure Transport(在8.15.0中移除)
  • BearSSL(在8.15.0中移除)
  • msh3(在8.16.0中移除)
  • winbuild构建系统(在8.17.0中移除)

奖项 在这方面(同样也是)疯狂的一年,我很荣幸获得了:

  • 2025年欧洲开源成就奖
  • 2025年度开发者
  • 2025年瑞典IVA金奖 我今年也退出了微软MVP计划,我是于2024年10月加入该计划的。

会议/演讲 我参加了这八个会议并发表了演讲——在五个国家。我的演讲总是以某种方式与curl相关。

  • FOSDEM
  • foss-north
  • curl up
  • Open Infra Forum
  • Joy of Coding
  • FrOSCon
  • Open Source Summit Europe
  • EuroBSDCon

播客 我今年参与了这些播客节目。总是与curl相关。

  • Security Weekly
  • Open Source Security
  • Day Two DevOps
  • Netstack.FM
  • Software Engineering Radio
  • OsProgrammadores
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计