0

0

curl 2025 年度总结:commit 超过 3400 次、发布 8 个版本

花韻仙語

花韻仙語

发布时间:2026-01-04 16:13:01

|

673人浏览过

|

来源于php中文网

原创

curl 创始人兼核心维护者 daniel stenberg 发布了 curl 项目 2025 年度回顾报告。

curl 2025 年度总结:commit 超过 3400 次、发布 8 个版本

中文翻译如下:


让我们一同回望,梳理这一年所经历的一切与收获。

提交(commits)

2025 年,curl 仓库的代码提交总数突破 3,400 次,较此前任意单一年份高出整整 40%。

在本年度某个时间节点之后,除作者本人外,其余所有贡献者累计向主仓库新增的代码行数,首次超过了 Daniel Stenberg 个人的历史总贡献量。这意味着,在整个 curl 项目至今所有已合并进产品代码的新行中,他本人所撰写的占比已低于 50%。

全年共合并了来自 150 余位开发者的提交,其中近 100 人为首次参与贡献。另有 13 位作者在 2025 年内完成了不少于 10 次有效提交。

Viktor Szakats 在 2025 年几乎每个月都保持着最高提交频次,稳居贡献榜首位。

截至年底,Stefan Eissing 是当前约 29% 的产品源码行最近一次修改者;而 Daniel Stenberg 对应的比例为 36%。

目前仍有约 598 位作者的代码“存活”于当前发布版中——这一数字相较去年底的 635 人略有回落。

测试(tests)

相比 2024 年 12 月,年末测试用例总数新增 232 个,达 2,179 个。这是历史上首次实现:每千行产品源码平均对应超 12 个测试用例。

(需指出的是,单纯以测试数量衡量覆盖质量并不绝对可靠——毕竟单个测试可能涵盖极简验证或复杂场景,但这是我们现阶段唯一可量化追踪的指标。)

发布(releases)

2025 年共推出 8 个正式版本,节奏平稳:

  • 8.12.0
  • 8.12.1
  • 8.13.0
  • 8.14.0
  • 8.14.1
  • 8.15.0
  • 8.16.0
  • 8.17.0

本年度未出现颠覆性架构调整或重大功能重构。

我们显著降低了代码整体复杂度,逐步弃用了一批易引发 bug 或逻辑混乱的旧函数,在提升运行效率的同时也减少了内存分配次数。

新增对 DNS HTTPS-RR 记录类型的实验性解析支持。

年末漏洞修复强度创历史新高:仅 curl 8.17.0 一个版本就集成了近 450 处安全与稳定性修复。

今年起,我们正式引入“候选发布版”(Release Candidate)机制。每次正式发版前,均会提前上传多个 RC 版本供社区试用与反馈,从而更早识别潜在回归问题,避免将缺陷带入稳定分支。

命令行选项

截至 2025 年底,curl 支持的命令行参数共计 273 个,比去年增加 6 项:

  • 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

man 手册页

curl 的官方手册持续扩充,全年新增超 500 行内容,总长度已达 7,090 行。若按“每个选项平均对应的手册说明行数”计算,该数值由去年的 24.7 上升至 26。

代码行数

本年度 libcurl 部分仅净增约 100 行代码,而命令行工具部分增长了 1,150 行。

存了个图
存了个图

视频图片解析/字幕/剪辑,视频高清保存/图片源图提取

下载

当前 libcurl 源码规模略超 149,000 行,命令行工具约为 25,800 行。

绝大多数提交聚焦于既有功能优化与稳定性增强,而非盲目扩张新特性——这一点亦体现在下文“移除支持”章节中。

QUIC

OpenSSL 在 3.5 版本中终于发布了面向 QUIC 协议的官方 API,标志着其对 HTTP/3 的底层支持趋于成熟。

受此影响,curl 中基于 OpenSSL 的 QUIC 实现已被标记为“弃用”,并计划于 2026 年初彻底移除。

此外,随着 msh3 支持已在 2025 年被裁撤,预计到明年,curl 将仅保留两个 QUIC / HTTP/3 后端实现。

安全(Security)

2025 年,“AI 自动生成的安全漏洞报告”数量激增,给 curl 安全响应团队带来沉重负担,并频繁引发媒体关注。

即便是一些未明确标注 AI 参与的安全报告,其整体质量也明显下滑,同时提交量大幅攀升,进一步加剧了日常维护压力。

全年共公开 9 个与 curl 相关的 CVE 编号,全部属于低危或中危等级。

AI 辅助改进

新一代 AI 驱动的高精度静态分析工具开始主动向项目提交高质量缺陷报告,主要来自 ZeroPath 和 Aisle Research。依据这些反馈,我们已完成数百个漏洞的修复,相关工作仍在持续推进中。

这还不包括我们常规 CI 流程中集成的各类静态/动态分析工具所发现并修复的问题。

Web 流量

截至 2025 年底,curl.se 网站月度数据传输量达 79 TB,较去年同期的 58 TB 增长 36%。

由于缺乏精细化日志与流量溯源能力,我们尚无法精确判断这些请求的具体构成,但可以确认:真正用于下载 curl 安装包的流量仅占极小比例,其中相当一部分显然并非由真实用户发起。

GitHub 活动

curl 的 GitHub 主仓库平均每月接收超过 200 个 Pull Request。

在今年秋季某一时段,待处理 Issue 数量曾短暂归零。

目前项目共配置 220 多个独立 CI 任务,年底每日合计消耗 CPU 时间逾 25 个“CPU 日”,用于保障持续集成的质量与稳定性。

仪表盘(Dashboard)

curl 项目仪表盘规模显著扩展。尽管我移除了若干已失效或不再准确的图表,但整体图表数量仍从 2024 年 12 月的 82 张增至 2025 年 12 月的 92 张插图,总计包含 259 个独立可视化组件,增幅约 25%。

移除的支持(Dropped support)

为精简维护范围、集中资源、强化安全性,2025 年我们陆续淘汰了一批陈旧或边缘化的技术依赖:

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

原文链接:https://www.php.cn/link/a7cde78dc3c25e85fa5cba29a6704fbf

源码地址:点击下载

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

231

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

435

2024.03.01

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

425

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

174

2023.10.30

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

382

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

567

2023.08.10

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

310

2023.11.09

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

396

2023.11.14

java学习网站推荐汇总
java学习网站推荐汇总

本专题整合了java学习网站相关内容,阅读专题下面的文章了解更多详细内容。

33

2026.01.08

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 2.5万人学习

Git版本控制工具
Git版本控制工具

共8课时 | 1.5万人学习

Git中文开发手册
Git中文开发手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号