curl began as httpget, a roughly 100-line HTTP download program released by Brazilian student Rafael Sagula on November 11, 1996. Daniel Stenberg found it, fixed problems, added hostname resolution, and gradually took over its maintenance. He first needed the tool to fetch currency rates for an IRC bot, but expanded it to support Gopher and FTP as well as HTTP. After adding FTP uploads and HTTP POST, he renamed it curl in 1998; version 4.0 had 3,300 lines, 24 command-line options, and three protocols. The project grew amid a radically smaller, slower Internet: ordinary Swedish connections ran at about 30 kilobits per second, and encryption was uncommon.
The account traces curl’s growth from a spare-time utility into a widely used open-source project and transfer library. Stenberg introduced libcurl in 2000, and PHP’s adoption helped bring users, testing, bug reports, and new requirements. He credits portability, a permissive license, community contributions, and steady improvement rather than a rewrite; the code is repeatedly refactored to meet changing needs. What began as a hobby eventually became his full-time work, and curl now supports a broad range of protocols and underpins substantial Internet infrastructure. His goal remains practical rather than tied to a finish line: make transfers fast, secure, and technically sound through continual development. He says the enduring appeal is building useful software, solving difficult bugs, and shaping systems that people rely on.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.