cURL和libcurl,开发
是的,cURL仍在开发
2025年11月4日 Daniel Stenberg
很多! 我在世界各地的会议上进行演讲时,关于cURL,我最常听到的反应或问题之一是:
—— cURL是否仍在积极开发?
还有多少协议可以添加?当然,提出这个问题的人,通常对cURL项目本身、乃至整个互联网协议世界都没有非常深入的了解——坦率地说,这可能包括了文明世界中的大多数人。尽管如此,这些问题仍然让我感到惊讶。项目难道真的能有“完工”的一天吗? (难道人们真的认为,除了添加协议就没什么可做的了吗?)
一切都在变化 尽管过去几十年来道路基本没变,但每年都有新车型问世;尽管对于大多数普通观察者来说,如今的网络看起来和几年前大致相同,但浏览器每隔几周就会发布新版本。等等等等。即便是像鞋子或自行车这样的东西,每年也都会有新版本推出和迭代。
尽管在远处的普通观察者看来可能并非如此,但在这个世界上,几乎没有事物会随着时间的推移而一成不变。互联网、万维网以及在其上进行数据传输的方式,当然也是如此。就在五年前,我们进行互联网传输的方式就与今天(希望)的方式不同。新的改进和提案至少每月都会被提出。
不进化就意味着停滞,最终走向……消亡。
随着标准、浏览器和用户更新他们的期望,cURL也必须跟上。cURL需要适应并保持更新,以维持其相关性。我们希望不断改进它,使其能够匹配并超越人们对它的期望。我们希望帮助推动互联网传输技术的发展,帮助用户进行更好、更高效、更安全的操作。我们乐意肩负起支撑世界基础设施的责任。
它可能在未来几十年继续进化 我在这个项目上已经工作了几十年,而真正让我想到的一件事(这在过去我完全没有考虑过)是,这个项目很可能在未来几十年也保持活跃并被使用。这正是因为我们周遭世界“永不停歇”的特性,当然,也因为它现有的用户数量和使用规模。
当前的开发必须谨慎、负责地进行,并且要预见到,我们今天合并的所有内容,至少在未来几十年里都将伴随着我们。在最近的一次cURL团队会议上,我主持了一个名为“百年cURL”的会议,我提出了一些想法:如果我们确实相信cURL项目能够、也应该在未来庆祝其百年诞辰,那么作为一个项目,我们可能需要为此努力并牢记在心。这个想法有点令人震撼(甚至令人恐惧?),但在我看来并非完全不现实。而且想想看,我们已经朝着那个目标走过了将近30%的路程。
但看起来还是一样
—— 我几十年前第一次用cURL,它看起来还是一样。
这是一个常见的后续说法。那么,在这段时间里,我们到底做了什么用户无法察觉的事情呢?
一个与之相关、也让我觉得有点好笑的问题是:
—— 你说你从2019年开始全职做cURL,但你整天到底都在做什么呢?
我们在努力维护向后兼容性,不破坏现有的用例。如果你察觉不到任何变化,你的命令行程序照常运行,那恰恰证明我们做得对。cURL的设计初衷就是做好本职工作,不打扰用户。它大部分时候应该是“无聊”的。一个稳定的技术栈才是好栈。
我们过去已经多次重构和重新安排了cURL和libcurl的内部架构,并且随着我们不断改进、适应新概念、新想法以及不断变化的世界,我们定期进行这项工作。但我们从未让这些改变影响到API、ABI,或者破坏任何以前能用的cURL命令行工具。
我个人认为,这是cURL的秘密超能力。这是我们真正完成并坚持做到的一件事:稳定。这个词的多个层面都适用。
cURL在一个不稳定的世界中提供稳定性。
现在比以往任何时候都更活跃 无论是统计提交频率还是任何其他项目活跃度的指标,cURL项目在其整个生命周期内,现在的开发工作比以往任何时候都更多,节奏也更快。
我们这样做,是为了为您和所有人提供地球上最好、最可靠、最快、功能最丰富、文档最完善、最安全的互联网传输库。