Now Reading
twenty-five years of curl | daniel.haxx.se

twenty-five years of curl | daniel.haxx.se

2023-03-19 20:13:26

Time flies if you end up having enjoyable. Right this moment is curl‘s twenty fifth birthday.

The curl venture began out very humbly as a small renamed URL switch software that just about no person knew about for the primary few years. It scratched a private itch of mine,

Me again then

I made that first curl launch and I’ve packaged each single launch since. The day I did that first curl launch I used to be 27 years outdated and I labored as a software program engineer for Frontec Tekniksystem, the place I principally did contract growth on embedded techniques for bigger Swedish product growth corporations. For just a few years within the late 90s I might for instance do fairly just a few initiatives at and for the telecom large Ericsson.

I’ve loved programming and growth ever since I received my first pc within the mid 80s. Within the Nineteen Nineties I had already established a each day schedule the place I stayed up late when my higher half went to mattress at evening, and I spent one other hour or two on my spare time growth. That is mainly how I’ve manged to search out time to dedicate to my initiatives the primary few many years. Much less sleep. Much less different issues.

Progressively and all the time bettering

The idea behind curl growth has all the time been to step by step and iteratively enhance all points of it. Preserve conduct, however improve the code, add check circumstances, enhance the documentation. Again and again, 12 months after 12 months. It by no means stops. Because the timeline beneath helps exhibiting.

Equally, there was no sudden particular second when abruptly curl turned common and the variety of customers skyrocketed. As an alternative, the variety of customers and the recognition of the software and library has step by step and repeatedly grown. In 1998 there have been few customers. By 2010 there have been tons of of hundreds of thousands.

We actually don’t know precisely what number of customers or installations of libcurl there at the moment are. It’s simple to estimate that it runs in far more than ten billion installations purely primarily based on the truth that there are 7 billion sensible telephones and 1 billion tablets on this planet , and we all know that every of them run at the very least one, however possible many extra curl installs.

Earlier than curl

My web switch journey began in late 1996 after I downloaded httpget 0.1 to mechanically obtain foreign money charges each day to make my foreign money alternate converter work appropriately for my IRC bot. httpget had some flaws so I despatched again fixes, however Rafael, the creator, rapidly determined I might quite take over upkeep of the factor. So I did.

I added help for GOPHER, change named of the venture, added FTP help after which in early 1998 I began including FTP add help as nicely…

1998

The unique curl emblem.

On March 20 1998, curl 4.0 was launched and it was already 2,200 strains of code on its birthday as a result of it was constructed on the initiatives beforehand named httpget and urlget. It then supported three protocols: HTTP, GOPHER and FTP and featured 24 wonderful command line choices.

The primary launch of curl was not that particular occasion since I had been delivery httpget and urlget releases for over a 12 months already, so whereas this was a brand new title it was additionally “simply one other launch” as I had executed many instances already.

We might add HTTPS and TELNET help already the primary curl 12 months, which additionally launched the primary ever curl man web page. curl began out GPL licensed however I switched to MPL already inside that first calendar 12 months 1998.

The primary SSL help was powered by SSLeay. The venture that in late 1998 would transition over into changing into OpenSSL.

In August 1998, we added curl on the open supply listing web site freshmeat.web.

The primary curl net web page was revealed at http://www.fts.frontec.se/~dast. (the oldest model archived by the wayback machine is from December 1998)

In November 1998 I added a notice to the web site in regards to the mind-blowing success as the newest launch had been downloaded 300 instances that month alone! Success and recognition had been removed from immediate.

Throughout this primary 12 months, we shipped 20 curl releases. We’ve by no means repeated that feat once more.

1999

We created the primary configure script, added help for cookies and appeared as a package deal in Debian Linux.

The curl web site moved to http://curl.haxx.nu.

We added help for DICT, LDAP and FILE by the 12 months. Now supporting 8 protocols.

Within the final days of 1999 we imported the curl code to the cool new service known as Sourceforge. All additional commit counts in curl begins with this import. December 29, 1999.

2000

Privately, I switched jobs early 2000 however continued doing embedded contract growth throughout my days.

The principles for the TLD .se modified and we moved the curl web site to curl.haxx.se.

I received married.

In August 2000, we shipped curl 7.1 and issues modified. This launch launched the library we determined to name libcurl as a result of we couldn’t give you a greater title. At this level the venture had been at 17,200 strains of code.

The libcurl API was impressed by how fopen() works and returns simply an opaque deal with, and the way ioctl() can be utilized to set choices.

Making a library out of curl was an concept I had nearly from the start, as I’ve already earlier than that time realized the facility an excellent library can convey to functions.

The first CVE for curl was reported.

Customers discovered the library helpful and elevated the curl uptake. One of many first early adopters of libcurl was the PHP language, which determined to make use of libcurl as their default HTTP/URL switch engine.

We created the primary check suite.

2001

We modified the license and supplied curl underneath the brand new curl license (successfully MIT) in addition to MPL. The thought to barely modify the curl license was a loopy one, however the cause for that has been forgotten.

We added help for HTTP/1.1 and IPv6.

In June, the THANKS file counted 67 named contributors. It is a group effort. We surpassed 1,100 whole commits in March and in July curl was 20,000 strains of code.

Apple began bundling curl with Mac OS X when curl 7.7.2 shipped in Mac OS X 10.1.

2002

The check suite contained 79 check circumstances.

We dropped the MPL possibility. We might by no means once more play the license change recreation.

We added help for gzip compression over HTTP and discovered the way to use SOCKS proxies.

2003

The curl “autobuild” system was launched: volunteers run scripts on their machines that obtain, construct and run the curl assessments steadily and e mail again the outcomes to our central server for reporting and analyses. Lengthy earlier than fashionable CI techniques made these items a lot simpler.

We added help for Digest, NTLM and Negotiate authentication for HTTP.

In August we supplied 40 particular person man pages.

Assist for FTPS was added, protocol quantity 9.

My first youngster, Agnes, was born.

I forked the ares venture and began the c-ares project to offer and preserve a library for doing asynchronous title resolves – for curl and others. This venture has since then additionally turn out to be pretty common and broadly used.

2004

Originally of 2003, curl was 32,700 strains of code.

We made curl help “giant information”, which again then meant supporting information bigger than 2 and 4 gigabytes.

We applied help for IDN, Worldwide Area Names.

2005

GnuTLS turn out to be the second supported TLS library. Customers might now choose which TLS library they wished their construct to make use of.

Due to a grant from the Swedish “Internetfonden”, I took a depart of absence from work and will implement the primary model of the multi_socket() API to permit functions to do extra parallel transfers quicker.

git was created they usually rapidly adopted curl for his or her HTTP(S) transfers.

TFTP turned the tenth protocol curl helps.

2006

We determined to drop help for “third social gathering FTP transfers” which made us bump the SONAME due to the modified ABI. The latest such bump. It triggered some arguments. We discovered how robust bumping the SONAME will be to customers.

The wolfSSL precursor known as cyassl turned the third SSL library curl supported.

We added help for HTTP/1.1 Pipelining and within the later half of the 12 months I accepted a contract growth work for Adobe and added help for SCP and SFTP.

As a part of the SCP and SFTP work, I took a quite massive step into and would later turn out to be maintainer of the libssh2 venture. This venture can be fairly broadly used.

I had a second youngster, my son Rex.

2007

Now at 51,500 strains of code we added help for a fourth SSL library: NSS

We added help for LDAPS and the primary port to OS/400 was merged.

For curl 7.16.1 we added help for --libcurl. Probably my single favourite curl command line possibility. Generate libcurl-using supply code repeating the command line switch.

In April, curl had 348 check circumstances.

2008

By now the command line software had grown to function 126 command line choices. A 5x progress throughout curl’s ten first years.

In March we surpassed 10,000 commits.

I joined the httpbis working group mailing list and began slowly to actively take part inside the IETF and the work on the HTTP protocol.

Solaris ships curl and libcurl. The Adobe flash participant on Linux makes use of libcurl.

In September the entire rely of curl contributors reached 654.

2009

On FLOSS Weekly 51, I talked about curl on a podcast for the primary time.

We launched help for constructing curl with cmake. A choice that’s nonetheless being mentioned and questioned if it truly helps us. To make the loop full, cmake itself makes use of libcurl.

In July the IETF 75 meeting was held in Stockholm, my dwelling city, and this was the primary time I received to bodily meet a number of of my private protocol heroes that created and saved engaged on the HTTP protocol: Mark, Roy, Larry, Julian and so forth.

In August, I give up my job to work for my own firm Haxx, however nonetheless doing contracted growth. Largely doing embedded Linux by then.

Due to yet one more contract, I launched help for IMAP(S), SMTP(S) and POP3(S) to twist, bumping the variety of supported protocols to 19.

I used to be awarded the Nordic Free Software Award 2009. For my work on curl, c-ares and libssh2.

2010

We added help for RTSP, and RTMP(S).

PolarSSL turned the sixth supported SSL library.

We switched model management system from CVS to git and on the similar time we switched internet hosting from Sourceforge to GitHub. From this level on we observe authorship of commits appropriately and appropriately, one thing that was a lot tougher to do with CVS.

Added help for the AxTLS library. The seventh.

2011

Over 80,000 strains of code.

The cookie RFC 6265 shipped. I used to be there and did some minor contributions for it.

We launched the checksrc script that verifies that supply code adheres to the curl code fashion. Began out easy, has improved and been made stricter over time.

I received a thank you from Googlers which ultimately landed me some Google swag.

We surpassed 100 particular person committers.

2012

149 command line choices.

Added help for Schannel and Safe Transport for TLS.

After I did an try at an arrogance rely of variety of curl customers, I ended up estimating they had been 550 million. This was one of many earlier realizations of mine that man, curl is all over the place!

Throughout your complete 12 months of 2012, there have been 67 commit authors.

2013

Added help for GSKit, a TLS library principally used on OS/400. The tenth supported TLS library.

In April the variety of contributors had surpassed 1,000 and we reached over 800 check circumstances.

We refactored the internals to verify every thing is finished non-blocking and what we name “use multi internally” in order that the simple interface is only a wrapper for a multi switch.

The preliminary makes an attempt at HTTP/2 help had been merged (powered by the good nghttp2 library) in addition to help for doing connects utilizing the Completely happy Eyeballs strategy.

We created our first two CI jobs.

2014

I started working for Mozilla within the Firefox networking group, remotely from my home in Sweden. For the primary time in my profession, I might truly work primarily with networking and HTTP and so forth with a big overlap with what curl is and does. Up till this level, the 2 sides of my life had been unusually separated. Mozilla allowed me to spend some work hours on curl.

At 161 command line choices and 20 reported CVEs.

59 man pages exploded into 270 man pages in July when each libcurl possibility received its personal separate web page.

We added help for the libressl OpenSSL fork and eliminated help for QsoSSL. Nonetheless at 10 supported TLS libraries.

In September, there was 105,000 strains of code.

Added help for SMB(S). 24 protocols.

2015

Added help for BoringSSL and mbedTLS.

We launched help for doing correct multiplexed transfers utilizing HTTP/2. A reasonably drastic paradigm change within the structure when abruptly a number of transfers would share a single connection. Numerous refactors and it took some time till HTTP/2 help received secure.

It adopted by our first help for HTTP/2 server push.

We converted to the GitHub working mannequin fully, utilizing its difficulty tracker and doing pull-requests.

The primary HTTP/2 RFC was published in May. I prefer to assume I contributed somewhat bit to the working group effort behind it.

My HTTP/2 work this 12 months was partly sponsored by Netflix and it was a dance to make that occur whereas nonetheless employed by and dealing for Mozilla.

20,000 commits.

I began writing everything curl.

We additionally added help for libpsl, utilizing the Public Suffix List for higher cookie dealing with.

2016

curl switched to utilizing HTTP/2 by default for HTTPS transfers.

In Might, curl function 185 command line choices.

We received a new logo, the current one. Designed by Adrian Burcea at Comfortable Goals.

Added help for HTTPS proxies and TLS 1.3.

curl was audited by Cure 53.

A Swedish tech web site named me 2nd best developer in Sweden. Due to my work on curl.

At 115,500 strains of code on the finish of the 12 months.

2017

curl received help for constructing with and utilizing a number of TLS libraries and doing the selection of which to make use of at start-up.

Fastly reached out and graciously and generously started hosting the curl web site in addition to my private web site. This assist placing the tip to earlier instabilities when weblog posts received too common for my web site to carry up and it made the curl web site snappier for extra folks across the globe. They’ve remained devoted sponsors of the venture ever since.

Within the spring of 2017, we had our first ever bodily builders convention, curl up, as twenty one thing curl followers and builders went to Nuremberg, Germany to spend a weekend doing nothing however curl stuff.

See Also

In June I used to be denied traveling to the US. This might subsequently take me on a protracted and painful journey making an attempt to get a US visa.

The primary SSLKEYLOGFILE help landed, we launched the brand new MIME API and help for brotli compression.

The curl venture was adopted into the OSS-Fuzz project, which instantly began to level out errors in our code. They’ve saved fuzzing curl nonstop since then.

In October, I used to be awarded the Polhem Prize. Sweden’s oldest and doubtless most prestigious engineering award. This prize was established and has been awarded since 1876. A real gold medal, handed over to me by no apart from his majesty the king of Sweden. The medal even has my title engraved.

2018

Added help for DNS over HTTPS and the brand new URL API was launched to permit functions to parse URLs the very same approach curl does it.

I joined the Changelog podcast and talked about curl turning 20.

Microsoft began delivery curl bundled with Home windows. However the curl alias remains.

We launched help for a second SSH library, so now SCP and SFTP could possibly be powered by libssh along with the already supported libssh2 library.

We added help for MesaLink however dropped help for AxTLS. At 12 TLS libraries.

129,000 strains of code. Reached 10,000 stars on GitHub.

To simply accept a donation it was requested we create an account with Open Collective, and so we did. It has since been an excellent channel for the venture to obtain donations and sponsorships.

In November 2018 it was determined that the HTTP-over-QUIC protocol ought to formally turn out to be HTTP/3.

At 27 CI jobs on the finish of the 12 months. Working over 1200 check circumstances.

2019

I started working for wolfSSL, doing curl full-time. It simply took 21 years to make curl my job.

We added help for Alt-Svc and we eliminated help for the all the time so problematic HTTP/1.1 Pipelining.

We launched our first curl bug bounty program and now we have successfully had a bug bounty working since. In affiliation with hackerone. We’ve paid nearly 50,000 USD in reward cash for 45 vulnerabilities (as much as Feb 2023).

Added help for AmiSSL and BearSSL: at 14 libraries.

We merged initial support for HTTP/3, powered by the quiche library, and somewhat later additionally with a second library: ngtcp2. As a result of why not do many backends?

We began providing curl in an “official” docker image.

2020

The curl software received parallel switch powers, the flexibility to output knowledge in JSON format with -w and the scary --help output was cleaned up and organized higher into subcategories.

In March, for curl 7.69.0, I began doing launch video displays, live-streamed.

The curl website moved to curl.se and everything curl moved over to the curl.dev area.

MQTT turn out to be the twenty fifth supported protocol.

The primary help for HSTS was added, in addition to help for zstd compression.

wolfSSH turned the third supported SSH library.

We eliminated help for PolarSSL.

Preliminary support for hyper in its place backend for HTTP/1 and HTTP/2.

In November, in the midst of Covid, I finally got a US visa.

The ninetieth CI job was created simply earlier than the tip of the 12 months.

2021

Dropped help for MesaLink however added help for rustls. At 13 TLS libraries.

Ingenuity landed on Mars, and curl helped it happen.

Obtained a really disagreeable death threat over email from somebody deeply confused, blaming me for all types of unhealthy issues that occurred to him.

Reached 20,000 stars on GitHub.

Helps GOPHERS. 26 protocols.

187 people authored commits that had been merged throughout the 12 months.

2022

Merged preliminary help WebSocket (WS:// and WSS:// URLs) and a brand new API for dealing with it. At 28 protocols.

We added the --json command line possibility and libcurl received a brand new header API, which then additionally made the command line software get new “header picking” ability added to -w. We additionally added --rate and --url-query.

The HTTP/3 RFC was revealed in June.

msh3 turn out to be the third supported HTTP/3 library.

Path of Bits did a curl security audit, sponsored by OpenSSF.

The 212th curl launch was executed in December. Concern 10,000 was created on GitHub.

2023

At first of the 12 months: 155,100 strains of code. 486 man pages. 1560 check circumstances. 2,771 contributors. 1,105 commit authors. 132 CVEs. 122 CI jobs. 29,733 commits. 48,580 USD rewarded in bug-bounties. 249 command line choices. 28 protocols. 13 TLS libraries. 3 SSH libraries. 3 HTTP/3 libraries.

Introduce help for HTTP/3 with fall-back to older variations, making it much less error-prone to make use of it.

On March 13 we surpassed 30,000 commits.

On March 20, we launch curl 8.0.0. Precisely 25 years because the first curl launch.

Staying related

Over the past 25 years now we have all stopped utilizing and forgotten a number of software program, instruments and providers. Issues come and go. All the pieces has its time and plenty of initiatives merely don’t sustain and will get changed by one thing else in some unspecified time in the future.

I prefer to assume that curl continues to be a extremely related software program venture with a number of customers and use circumstances. I wish to assume that that is partly as a result of we preserve it intensely and with each care and love. We make it do what customers need it to do. Sustain, maintain present, run the newest variations, help the newest safety measures, be the venture you wish to use and take part. Lead by instance.

My life is ceaselessly curl tinted

Taking curl this far and having the ability to work full time on my pastime venture is a dream come actual. curl is a large a part of my life.

Me, on trip in Portugal in 2019.

This stated, curl is a group effort and it might by no means have taken off or turn out to be something actual with out all our superior contributors. Individuals will name me “the curl man” and a few will say that it’s “my” venture, however everybody who has ever been near the venture is aware of that we’re many extra within the group than simply me.

25 years

That day discovered httpget I used to be 26 years outdated. I used to be 27 by the point I shipped curl. I turned 52 final November.

I’ve labored on curl longer than I’ve labored for any firm. None of my children are this outdated. 25 years in the past I didn’t dwell in my home but. 25 years in the past Google didn’t exist and nether did Firefox.

Many present curl customers weren’t even born after I began engaged on it.

Past twenty-five

I really feel obligated so as to add this part as a result of folks will ask.

I don’t know what the longer term holds. I used to be by no means good at predictions or forecasts and albeit I all the time attempt to keep away from studying tea leaves. I hope to remain energetic within the venture and to proceed working with client-side web transfers for so long as it’s enjoyable and other people wish to use the outcomes of my work.

Will I be round within the venture in one other 25 years? Will curl nonetheless be related then? I don’t know. Let’s discover out!

Source Link

What's Your Reaction?
Excited
0
Happy
0
In Love
0
Not Sure
0
Silly
0
View Comments (0)

Leave a Reply

Your email address will not be published.

2022 Blinking Robots.
WordPress by Doejo

Scroll To Top