3月20日是Curl的25岁生日!
在此,祝愿curl以及他的创造和掩护者Daniel Stenberg生日快乐!
在此喜庆的日子里,让我们追随一起看看curl这四分之世纪的进程是如何发展的。从一个默默无闻的鄙吝械到百亿人系统上的一个真正有用工具,这个进程是平凡而又充足的。
Curl刚开始只是一个的小型URL传输工具,最初几年里,只有创始人Daniel自己用的称手小工具。当时Daniel是嫩青小伙,是瑞典一个嵌入式系统的开拓工程师,当时他才27岁。
Daniel小伙在从小便是喜好coding,十几岁时候就已经有了自己的打算机,每天的爱好便是码代码,反正他年轻力胜,也不爱睡觉,以是只有做开拓丁宁韶光了。

Curl出身之前(1996年),Daniel任务便是利用httpget 0.1下载货币汇率以并将货币兑换转换到IRC机器人,让其正常事情。在利用中Daniel创造了httpget的一些毛病,并提出了修复包,但是其作者(Rafael)很
接手httpget掩护事情后,第一件事便是对其增加了GOPHER 支持,并变动了项目名称为curl,后学又添加了FT 支持。
伊始之初。
上面是curl最原始的logo。
1998年3月20日,curl 4.0发布,当时curl有 2,200行代码,代码中包括了,接手掩护的httpget和urlget原始代码。
支持的协议有三种:HTTP、GOPHER和FTP。
支持24个命令行选项。
这一年陆续做的开拓:
添加了HTTPS和TELNET支持;
创建了第一个curl手书页。
curl 利用GPL容许,但是随后切换到了MPL。
HTTPS中的SSL利用的是SSLeay项目。后来SSLeay也在1998年底改名成了OpenSSL。
当年8月,curl在开源目录站点freshmeat.net上开设目录,并且启用了其第一个主页fts.frontec.se/~dast。其快照为:
当年11月,主页上添加了条令人愉快的:curl最新版本当月300!
。
第一年,curl迭代了20个版本,这该当是curl开拓史上迭代最快的一年。
最初十年1999年curl创建了第一个配置脚本,添加了对cookie支持,并给Debian打了第一个deb包。
主页利用了全新域名 curl.haxx.nu。
增加了对DICT、LDAP和FILE 的支持,统共支持8种协议。
在1999年的末了几天(12月29日),curl源码开始在Sourceforge托管,从此各种统计数据也开始明晰。
2000年TLD.se 的规则改变,curl网站从其迁到自建站点curl.haxx.se.
8月,curl发布 7.1,记住这是一个具有主要意义的版本。curl 7.1中引入了底层根本库libcurl。这是curl项目代码已经扩展到了17,200行。
curl的第一个安全漏洞也被提出了CVE-2000-0973:
PHP用户首先在措辞层支持了libcurl,并给出了用例文档。
libcurl的最早采取者之一,PHP利用libcurl作为其默认的 HTTP/URL传输引擎。
创建了第一个测试套件。
2001年curl容许证改成了curl容许证(MIT变体)。
添加了对HTTP/1.1和IPv6的支持。
curl代码量达到了20,000 行。
Mac OS X 10.1 中内置curl 7.7.2。
2002年 curl测试套件已包含79个测试用例。
放弃了MPL选项。
支持HTTP gzip 压缩 和SOCKS代理。
2003年 引入了curl“自动构建”系统。
32,700行代码
添加了对HTTP的择要、NTLM 和协商身份验证的支持。
供应了40 个单独的手书页。
添加FTPS的支持,curl支持的第九个协议。
Fork ares 项目启动了c-ares 项目来支持curl异步域名解析。
2004年 curl 支持“大文件”,支持大于2GB和4GB的文件。
对IDN(国际域名)的支持。
2005年 增加GnuTLS为第二个受支持的TLS库。用户现在多个ssl底层库选择。
multi_socket() API 的第一个版本,支持并行传输。
git出身,采取curl来进行HTTP(S)传输。
增加TFTP,curl第10个支持的协议。
2006年 放弃对“第三方 FTP传输”的支持。
第三个支持的SSL库Cyassl(已经改名wolfSSL)。
增加对HTTP/1.1 Pipelining支持。
添加了对SCP和SFTP的支持,并接手掩护libssh2项目。
2007年 新增第四个SSL底层库NSS。
代码51,500 行。
添加了对LDAPS的支持,并合并了OS/400端口。
curl 7.16.1,添加了--libcurl 命令行选项。
重复命令行传输天生libcurl-using 源代码。
348个测试用例。
2008年 命令行工具选项扩展到126 个。
提交次数打破一万次。
极参IETF和HTTP协议的事情。
Solaris 供应了curl和 ibcurl。
Linux版Adobe flash 播放器利用了libcurl。
curl贡献者总数达到654人。
2009年
Daniel辞掉了事情,自己创业公司haxx,做Linux嵌入式开拓。
引入对 IMAP(S)、SMTP(S) 和 POP3(S) 的支持,支持的协议数量增加到19 个。
Daniel得到 2009 年北欧自由软件奖。
飞速发展2010年 增加RTSP和RTMP(S)的支持。
增加第6个SSL底层库PolarSSL。
版本掌握系统由CVS切换到 git,仓库托管地址由 Sourceforge 切换到 GitHub。
增加第7个SSL底层库AxTLS。
2011年 代码量超过8w行,贡献者过百。
2012年 命令行选项增加到149个。
添加了TLS的 Schannel和安全传输的支持。
curl初步用户估计为5.5亿。
整年贡献者67人。
2013年
增加第10 TLS 库GSKit(OS/400)。
贡献者人数逾千,测试用例超过800。1
合并了对HTTP/2 最初考试测验支持的(nghttp2 库支持)以及对利用Happy Eyeballs方法进行连接的支持。
创建了前两个CI作业。
2014年 Daniel入职Mozilla在Firefox网络团队事情,可以在事情韶光开拓curl。
161个命令行选项和20个安全报告 CVE。
利用手册激增为270个手书页。
libressl支持并删除了对 QsoSSL 的支持,支持10个TLS底层库。
代码量十万五千行。
添加了对 SMB(S) 的支持。第24个支持的协议。
2015年 添加了对BoringSSL和mbedTLS的支持,支持12个TLS底层库
引入了对利用 HTTP/2 进行适当的多路复用传输的支持。
支持HTTP/2做事器推送。
完备切换到GitHub事情模型,进行问题跟踪器并进行拉取要求。
HTTP/2事情得到了Netflix 的部分资助。
提交次数达到2万次。
开始写书,
我开始写书《关于curl的统统》。
添加了对libpsl的支持,利用公共后缀列表来更好地处理 cookie。
2016年 curl切换为默认利用HTTP/2 进行传输。
185个命令行选项。
新的logo(由Soft Dreams的Adrian Burcea设计)。
添加了对HTTPS代理和TLS 1.3的支持。
Cure 53对Curl进行安全审计。
被评为瑞典第二好的开拓职员。
代码达到115,500 行。
2017年 curl支持构建和利用多个TLS库,可以在启动自由选择。
Fastly供应免费curl官网托管。
第一边界下开拓者大会(curl up ),有20多位curl粉丝和开拓者在德国纽伦堡度举行。
引入了新的 MIME API 和对brotli压缩的支持。
curl 项目被采取到OSS-Fuzz项目,并测试出代码中的缺点。奉养对curl进行模糊测试。
得到了Polhem奖。由瑞典国王颁奖,勋章上刻作者的名字。
2018年
添加了DNS over HTTPS 的支持。
引入了新的URL API以许可运用程序以与curl完备相同的办法解析URL。
Microsoft 开始发布与Windows捆绑在一起的curl。
引入了对第二个SSH库的支持,libssh2。
添加了对MesaLink的支持,但放弃了对AxTLS 的支持。12个TLS支持库。
代码行数达到129,000。
GitHub星星达到1万。
CI 27任务。
测试用例超1200。
健壮成型2019年 Daniel跳槽wolfSSL 事情,全职做curl开拓。
添加了对Alt-Svc的支持,并删除了HTTP/1.1 Pipelining支持(问题太多)。
联合hackerone推出了第一个curl缺点赏金操持。截止2023年2月已经为45个漏洞支付了近50,000 美元的褒奖金。
添加了对AmiSSL 和 BearSSL支持:14个TSL支持库。
合并由quiche 库供应支持的对 HTTP/3 的初始支持 ,稍后还合并了第二个库ngtcp2。
供应curl docker镜像。
2020年 curl工具得到了并行传输能力,以JSON 格式输出数据。
curl网站迁移到 curl.se移到,《Everything curl》创建域名everything.curl.dev。
MQTT 成为第25个支持的协议。
添加了对HSTS的第一个支持,以及对zstd压缩协议的支持。
第三个支持的SSH库wolfSSH。
我们删除了对 PolarSSL 的支持。
最初支持 hyper 作为 HTTP/1 和 HTTP/2 的替代后端。
CI任务数增加到90个。
2021年 放弃对MesaLink的支持,但增加了对rustls的支持。第13个TLS底层库。
伴随火星直升机Ingenuity一起上岸火星。
GitHub 20,000星。
支持GOPHERS。26个协议。
年度187人代码提交。
2022年 合并初始支持WebSocket( WS://和 WSS:// URL) 和一个新的 API 来处理它。支持的第28个协议。
新添加--json命令行选项和给增加libcurl标头API 。-
添加了--rate和 --url-query选项。
第三个受支持的HTTP/3库msh3。
由OpenSSF Trail of Bits 进行 curl 安全审计 。
Curl 发布了第 212 次版本。
Github 问题达到1万条。
数据统计末了统计一些数,截止今年年初:
支持协议28个。
TLS库 13 个。
SSH库3 个。
HTTP/3库3 个。
代码量155,100 行。
用户手册 486 页。
测试用例1560 个。
代码贡献者 2771位。
代码提交者1105位。
代码提交 29733 次。
命令行选项249 个。
安全漏洞(CVE)132 个。
漏洞赏金48580 美元。
CI任务 122 个。
3月13日,提交次数超过了30,000 。
3月20日,发布了 curl 8.0.0。 自第一个curl发布以来整整25年。
目前curl和libcurl用户或安装量准确数据不明。基于天下上有70亿部智好手机和10亿部平板电脑来推算,估计它以用户安装量超过100亿。