Curl’s 30-year history began with httpget, a roughly 100-line HTTP downloader released by Brazilian student Rafael Sagula in 1996. Daniel Stenberg found it, fixed bugs, added hostname resolution, and gradually took over maintenance. He first expanded it for personal use: a currency-conversion feature in his IRC bot needed daily exchange-rate downloads. Support for Gopher and FTP followed, prompting the name change to urlget; after adding FTP uploads and HTTP POST, he renamed it curl in 1998. At that point it had 3,300 lines, 24 command-line options, and three protocols. Its growth unfolded against a very different internet: typical Swedish home connections ran at 30 kilobits per second, and only 36 million people were online worldwide.
The account traces curl’s evolution from a spare-time utility into widely used infrastructure, emphasizing portability, free licensing, and steady improvement rather than a grand plan or rewrite. In 2000, Stenberg introduced libcurl so other programs could use its transfer capabilities; PHP soon adopted it as its default internet-transfer engine, bringing users, testing, bug reports, and feature requests. Community contributions helped it work across many operating systems, while repeated releases added features and fixed problems. Stenberg describes decades of ongoing refactoring and adaptation, with the aim of making transfers fast, secure, and faithful to the relevant protocols. His central point is that durable software can grow through sustained work: curl remains actively developed, supports a broad range of network technologies, and quietly underpins a substantial part of the internet.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.