hn.today

30 Years of Internet Transfers with Curl

daniel.haxx.se8 points0 comments
Screenshot of 30 Years of Internet Transfers with Curl

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.

Read on daniel.haxx.se0 comments on Hacker News

Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.

More in Programming

Ggml v1.0.0

Ggml v1.0.0

ggml 1.0.0 removes deprecated public APIs and legacy DIAG_MASK operations, while adding configurable YaRN truncation and FP8 support. It also improves backend performance with quantized matrix multiplication, fused MoE operations, and new attention and scheduling paths. (github.com)

The daily digest

Today's best Hacker News stories, summarized and screenshotted, one email a day.