The installation volume far exceeds 10 billion, and the number of code lines exceeds 150,000. Daniel Stenberg posted a review of curl’s 25-year transformation history! …

d60ca63ff8642dbc2097d7e1df4c9599.gif

[CSDN editor’s note] For those who love programming, what is happiness? For Daniel Stenberg, the author of curl, the greatest happiness is to be able to devote himself to the projects he is interested in!

Happy 25th birthday curl!

Author | Daniel Stenberg

Organize | Meng Yidan

Produced | CSDN (ID: CSDNnews)

March 20 is the 25th birthday of the well-known open source command-line tool curl. Daniel Stenberg, the author of curl, reviewed the twenty-five years of the project. Let’s take a look at Daniel Stenberg’s official blog.

curl was originally very humble, almost unknown in the years of its birth, and was only used by Daniel Stenberg personally. When he released the first version of curl, he was 27 years old and working as a software engineer at Frontec Tekniksystem, mainly doing contract development of embedded systems for Swedish product development companies.

He fell in love with programming and development ever since he got his first computer, and it was a habit at that time to stay up late every night to spend an hour or two working on the development of his personal projects.

5cb0529a89fd629ef8d7499296ec8e9f.jpeg

be75e6a6e4197a87bfc0e458916818bb.png

Step by step, continuous improvement

Well over 10 billion users

The development philosophy of curl has always been to gradually improve in all aspects, increase test cases, improve documentation, persist day after day, year after year, and never stop, as shown in the timeline below.

Curl has never been popular overnight. The number of users and popularity have continued to grow in gradual iterations. In 1998, there were very few users. By 2010, it had grown to hundreds of millions of users. Right now, Daniel Stenberg says he doesn’t know how many people have libcurl installed. Based on the fact that there are 7 billion smartphones and 1 billion tablets in the world, it is estimated that it has well over 10 billion installations, and everyone runs at least one, but probably multiple installs of curl.

Daniel Stenberg’s curl journey started in late 1996, when he downloaded httpget 0.1, a tool developed by Rafael Sagula, to automatically download currency rates every day to ensure his currency converter would work for his IRC bot. There were some vulnerabilities in httpget at that time, and Daniel Stenberg submitted a patch to the author. Rafael thought that Daniel Stenberg could take over and maintain the project, so he took over and renamed httpget to urlget. Later, he gradually added support for GOPHER, changed the project name, and added support for FTP. In early 1998, FTP upload was added. support…

bd3317cd94d653b710a1ae4532842eda.png

25 years of curl’s history

Line of CodeFrom 2,000+ lines to 150,000+ lines

ec18484485d9ada3913205210743e5a4.jpeg

The following is the development history of curl:

On March 20, 1998, curl 4.0 was released. At that time, curl had 2200 lines of code. At that time, it supported three protocols: HTTP, GOPHER and FTP, and had 24 command line options. curl had 20 releases during the year and had 300 downloads by the end of the year.

1999 The curl team created the first configuration script, added support for cookies, and appeared as a package in Debian Linux, bringing the number of supported protocols to 8 that year. In the last few days of the year, curl was migrated to the Sourceforge service platform. Since then, curl’s code counts have also started from this import, and the time is December 29, 1999.

In 2000, Daniel Stenberg moved to a new job and accomplished a lifelong event. curl 7.1 was released and introduced the libcurl library, developed based on PHP. The project code at that time had 17200 lines.

In 2001, the curl protocol was changed to MIT and MPL, adding support for HTTP/1.1 and IPv6. Apple started installing curl 7.7.2 in Mac OS X 10.1.

2002, MPL removed, support for HTTP gzip compression added…

In 2003, the “automatic build” system was introduced, and HTTP’s Digest, NTLM, and Negotiate authentication support was added, and FTPS support was added. This year, Daniel Stenberg forked and started the c-res project, providing and maintaining a library for doing asynchronous name resolution.

In 2004, it can support “big files” larger than 2GB and 4GB, and realize the support for IDN and international domain names.

In 2005, GnuTLS became the second supported TLS library, users can choose the TLS library based on their own construction, TFTP became the tenth protocol supported by curl, parallel transmission API multi_socket () implemented the first versions.

2006 dropped support for third-party FTP transfers, added support for HTTP/1.1 Pipelining, and added support for SCP and SFTP.

2007 At that time, the curl project code increased to 51500 lines, supported the support of the fourth SSL library NSS, supported LDAPS, merged into the first OS/400 port, and supported .NET.

In 2008, curl had 126 command-line options, and in September, the number of contributors reached 654. Daniel Stenberg joined the httpbis working group mailing list.

2009, August Daniel Stenberg received the 2009 Nordic Free Software Award. curl adds IMAP(S), SMTP(S) and POP3(S) support, bringing the number of supported protocols to 19.

2010, added support for RTSP and RTMP(S), supported the PolarSSL library, switched the version control system from CVS to git, and we switched hosting from Sourceforge to GitHub.

2011, over 80,000 lines of code.

In 2012, the command line options grew to 149 options, supporting Schannel and TLS secure transmission. In this year, the number of curl users reached 500 million.

2013 Supported GSKit, the 10th library to support TLS, incorporating initial attempts at HTTP/2 support.

2014 Added support for SMB(S). 24 protocols, added support for libressl OpenSSL fork and removed support for QsoSSL, still 10 supported TLS libraries.

2015 Added support for BoringSSL and mbedTLS, support for HTTP/2 multiplexing, and for the first time HTTP/2 server push.

2016, curl’s default transmission protocol switched from HTTPS to HTTP/2, added support for HTTPS proxy and TLS 1.3, command line options reached 185, and the number of lines of code reached 115,500 lines.

2017 curl supports multiple TLS builds, introduces new MIME API and support for brotli compression. Daniel Stenberg was also denied a US visa this year for questioning the abuse of open source code. In October, Daniel Stenberg was awarded the Polhem Engineering Award

In 2018, support for DNS over HTTPS was added and a new URL API was introduced, allowing applications to resolve URLs in exactly the same way as curl. Microsoft starts bundling curl with Windows, adds support for MesaLink but drops support for AxTLS, lines of code hit 129,000 lines of code, HTTP-over-QUIC protocol officially becomes HTTP/3, 27 CIs working , running over 1200 test cases.

2019, added support for Alt-Svc, removed HTTP/1.1 pipeline support, merged initial support for HTTP/3, provided curl in official docker images.

2020, curl can output data in JSON format, support MQTT protocol, support HSTS and zstd compression support. In November, Daniel Stenberg received a US visa.

2021, curl deletes MesaLink, supports rustls in 13 TLS, supports GOPHERS. 26 protocols, and the number of Stars on GitHub reaches 20,000.

2022, curl incorporates preliminary support for WebSocket (and URLs) to handle its new API, adds command line options, libcurl gets a new header API, which also makes command line tools get New “head selection” feature. Also added –json, -w, –rate, and –url-query options. The RFC for HTTP/3 was published in June, and msh3 became the third library to support HTTP/3.

2023, at the beginning of the year, curl has 155,100 lines of code, 486 pages of operation manual, 1,560 test cases, 2,771 contributors, 1,105 submission authors, 132 CVEs, 122 CI jobs, 29,733 Submission, $48580 bug bounty, 249 command line options, 28 protocols, 13 TLS libraries, 3 SSH libraries, 3 HTTP/3 libraries.

Introduces support for HTTP/3, supports fallback to older versions, and makes it more reliable to use.

On March 13, curl surpassed 30,000 commits.

On March 20th, curl 8.0.0 was officially released, 25 years after the first curl was released.

Daniel Stenberg said at the end that he was 26 years old when he discovered httpget, and now he is 52 years old. curl makes his dreams come true, and he can devote himself to doing the work he loves, and curl is an important part of his life. He also emphasized that it is the credit of the entire team that curl can achieve today’s results.

More than 25 years, facing the future, Daniel Stenberg admits that he doesn’t like to make predictions, but he will still be active in the curl project as always, and continue to work on Internet client transmission.

Finally, we also thank Daniel Stenberg for his persistence and care for curl, and wish, curl a happy birthday!

Original link: https://daniel.haxx.se/blog/2023/03/20/twenty-five-years-of-curl/


5f43ef7b3d054d52b077b60f0d864501.gif

? Robin Li talks about Wenxin: Market feedback is in line with expectations; OpenAI CEO admits to being afraid of ChatGPT; Twitter will open source recommendation algorithm source code|Geek Headlines
?FSF Announces 2022 Free Software Award Winners
?Former Apple engineer Tucao: "Siri" code is outdated and complicated, it is impossible to become as powerful as ChatGPT

The knowledge points of the article match the official knowledge files, and you can further learn related knowledgeLinux skill treeLinux practical commandscURL and wget commands 5971 people are learning the system