This article is more than 1 year old

Curl, the URL fetcher that can, marks 25 years of transfers

Utility began as a personal project, found its way into billions of devices

Daniel Stenberg has observed the 25th anniversary of the curl open source project with the publication of curl 8.0.0, the 215th release of the command line tool, and a modest tele-celebration.

The name curl, originally rendered as "cURL" to emphasize its function, stands for "Client for URLs" or "Client URL Request Library" or its recursive form, "curl URL Request Library."

It's a command line tool and library for transferring data with URLs. Once installed on a device with command line access, curl can be used, through a text command, to send or fetch data to and from a server using a variety of network protocols.

Any developer who is serious about writing code that interacts over a network has probably used curl, or does so regularly. Presently, billions of devices rely on curl – cars, mobile phones, set top boxes, routers, and other such items use it internally for data transfer.

"The curl project started out very humbly as a small renamed URL transfer tool that almost nobody knew about for the first few years," said Stenberg in a blog post. "It scratched a personal itch of mine."

The first version of curl debuted on March 20, 1998 as version 4.0. It had 2,200 lines of code and had been adapted from projects known as httpget and urlget.

As Stenberg explained, curl 4.0 supported just three protocols, HTTP, GOPHER and FTP, and 24 command line options. Version 8.0.0 can handle 28 protocols and 249 command line options.

"The first release of curl was not that special event since I had been shipping httpget and urlget releases for over a year already, so while this was a new name it was also 'just another release' as I had done many times already," he wrote.

HTTPS and TELNET support soon followed. According to Stenberg, curl was initially released under the General Public License (GPL) but was put under an Mozilla Public License (MPL) by the end of 1998. In 2001, curl added a new license that's close but not identical to the MIT license, alongside the MPL license, which was dropped in 2002.

The project has become a juggernaut. Stenberg says that his goal has been simply to keep improving the code over time. And in the years he and other contributors have worked on it, curl grew and grew, reaching hundreds of millions of installations in 2010. Today it's estimated to have been installed more than ten billion times.

As of the start of 2023, curl consisted of 155,100 lines of code. It incorporates contributions from more than 2,800 people, and more than 1,100 commit authors who have created more than 30,000 commits. Bug bounties for curl code fixes add up to more than $48,000.

In his observance of curl's 25th anniversary, Stenberg has received thanks from various users of the software. But it has not always been pleasant – two years ago, he noted that he had received death threats from an unhappy user.

Stenberg, who lives and works in Sweden, expressed gratitude in his anniversary post for being able to work full time on what began as a hobby project – he was hired in 2019 by WolfSSL to focus on curl. He also thanked the many contributors who have kept the project going and growing.

A celebratory Zoom conference included more accolades and further fond reminiscing.

As for the next 25 years of curl, Stenberg says he tries to avoid making predictions. "I hope to stay active in the project and to continue working with client-side internet transfers for as long as it is fun and people want to use the results of my work," he said.

That work may never be done. A mere seven hours after curl 8.0.0 debuted, Stenberg pushed 8.0.1 to deliver a bug fix. ®

More about


Send us news

Other stories you might like