0

0

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

花韻仙語

花韻仙語

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

|

653人浏览过

|

来源于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 行。

Canva
Canva

使用Canva可画,轻松创建专业设计

下载

当前 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常见下载安装工具相关内容,可以阅读本专题下面的文章。

172

2023.10.30

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

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

380

2023.07.18

堆和栈区别
堆和栈区别

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

566

2023.08.10

http500解决方法
http500解决方法

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

301

2023.11.09

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

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

395

2023.11.14

漫蛙2入口地址合集
漫蛙2入口地址合集

本专题整合了漫蛙2入口汇总,阅读专题下面的文章了解更多详细内容。

161

2026.01.06

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
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号