| _ _ ____ _ |
| ___| | | | _ \| | |
| / __| | | | |_) | | |
| | (__| |_| | _ <| |___ |
| \___|\___/|_| \_\_____| |
| |
| How cURL Became Like This |
| |
| |
| In the second half of 1997, Daniel Stenberg came up with the idea to make |
| currency-exchange calculations available to Internet Relay Chat (IRC) |
| users. All the necessary data are published on the Web; he just needed to |
| automate their retrieval. |
| |
| Daniel simply adopted an existing command-line open-source tool, httpget, that |
| Brazilian Rafael Sagula had written. After a few minor adjustments, it did |
| just what he needed. |
| |
| Soon, he found currencies on a GOPHER site, so support for that had to go in, |
| and not before long FTP download support was added as well. The name of the |
| project was changed to urlget to better fit what it actually did now, since |
| the http-only days were already passed. |
| |
| The project slowly grew bigger. When upload capabilities were added and the |
| name once again was misleading, a second name change was made and on March 20, |
| 1998 curl 4 was released. (The version numbering from the previous names was |
| kept.) |
| |
| (Unrelated to this project a company called Curl Corporation registered a US |
| trademark on the name "CURL" on May 18 1998. That company had then already |
| registered the curl.com domain back in November of the previous year. All this |
| was revealed to us much later.) |
| |
| SSL support was added, powered by the SSLeay library. |
| |
| August 1998, first announcement of curl on freshmeat.net. |
| |
| October 1998, with the curl 4.9 release and the introduction of cookie |
| support, curl was no longer released under the GPL license. Now we're at 4000 |
| lines of code, we switched over to the MPL license to restrict the effects of |
| "copyleft". |
| |
| November 1998, configure script and reported successful compiles on several |
| major operating systems. The never-quite-understood -F option was added and |
| curl could now simulate quite a lot of a browser. TELNET support was added. |
| |
| Curl 5 was released in December 1998 and introduced the first ever curl man |
| page. People started making Linux RPM packages out of it. |
| |
| January 1999, DICT support added. |
| |
| OpenSSL took over where SSLeay was abandoned. |
| |
| May 1999, first Debian package. |
| |
| August 1999, LDAP:// and FILE:// support added. The curl web site gets 1300 |
| visits weekly. |
| |
| Released curl 6.0 in September. 15000 lines of code. |
| |
| December 28 1999, added the project on Sourceforge and started using its |
| services for managing the project. |
| |
| Spring 2000, major internal overhaul to provide a suitable library interface. |
| The first non-beta release was named 7.1 and arrived in August. This offered |
| the easy interface and turned out to be the beginning of actually getting |
| other software and programs to get based on and powered by libcurl. Almost |
| 20000 lines of code. |
| |
| August 2000, the curl web site gets 4000 visits weekly. |
| |
| The PHP guys adopted libcurl already the same month, when the first ever third |
| party libcurl binding showed up. CURL has been a supported module in PHP since |
| the release of PHP 4.0.2. This would soon get followers. More than 16 |
| different bindings exist at the time of this writing. |
| |
| September 2000, kerberos4 support was added. |
| |
| In November 2000 started the work on a test suite for curl. It was later |
| re-written from scratch again. The libcurl major SONAME number was set to 1. |
| |
| January 2001, Daniel released curl 7.5.2 under a new license again: MIT (or |
| MPL). The MIT license is extremely liberal and can be used combined with GPL |
| in other projects. This would finally put an end to the "complaints" from |
| people involved in GPLed projects that previously were prohibited from using |
| libcurl while it was released under MPL only. (Due to the fact that MPL is |
| deemed "GPL incompatible".) |
| |
| curl supports HTTP 1.1 starting with the release of 7.7, March 22 2001. This |
| also introduced libcurl's ability to do persistent connections. 24000 lines of |
| code. The libcurl major SONAME number was bumped to 2 due to this overhaul. |
| |
| The first experimental ftps:// support was added in March 2001. |
| |
| August 2001. curl is bundled in Mac OS X, 10.1. It was already becoming more |
| and more of a standard utility of Linux distributions and a regular in the BSD |
| ports collections. The curl web site gets 8000 visits weekly. Curl Corporation |
| contacted Daniel to discuss "the name issue". After Daniel's reply, they have |
| never since got in touch again. |
| |
| September 2001, libcurl 7.9 introduces cookie jar and curl_formadd(). During |
| the forthcoming 7.9.x releases, we introduced the multi interface slowly and |
| without much whistles. |
| |
| June 2002, the curl web site gets 13000 visits weekly. curl and libcurl is |
| 35000 lines of code. Reported successful compiles on more than 40 combinations |
| of CPUs and operating systems. |
| |
| To estimate number of users of the curl tool or libcurl library is next to |
| impossible. Around 5000 downloaded packages each week from the main site gives |
| a hint, but the packages are mirrored extensively, bundled with numerous OS |
| distributions and otherwise retrieved as part of other software. |
| |
| September 2002, with the release of curl 7.10 it is released under the MIT |
| license only. |
| |
| January 2003. Started working on the distributed curl tests. The autobuilds. |
| |
| February 2003, the curl site averages at 20000 visits weekly. At any given |
| moment, there's an average of 3 people browsing the curl.haxx.se site. |
| |
| Multiple new authentication schemes are supported: Digest (May), NTLM (June) |
| and Negotiate (June). |
| |
| November 2003: curl 7.10.8 is released. 45000 lines of code. ~55000 unique |
| visitors to the curl.haxx.se site. Five official web mirrors. |
| |
| December 2003, full-fledged SSL for FTP is supported. |
| |
| January 2004: curl 7.11.0 introduced large file support. |
| |
| June 2004: |
| |
| curl 7.12.0 introduced IDN support. 10 official web mirrors. |
| |
| This release bumped the major SONAME to 3 due to the removal of the |
| curl_formparse() function |
| |
| August 2004: |
| Curl and libcurl 7.12.1 |
| |
| Public curl release number: 82 |
| Releases counted from the very beginning: 109 |
| Available command line options: 96 |
| Available curl_easy_setopt() options: 120 |
| Number of public functions in libcurl: 36 |
| Amount of public web site mirrors: 12 |
| Number of known libcurl bindings: 26 |
| |
| April 2005: |
| |
| GnuTLS can now optionally be used for the secure layer when curl is built. |
| |
| September 2005: |
| |
| TFTP support was added. |
| |
| More than 100,000 unique visitors of the curl web site. 25 mirrors. |
| |
| December 2005: |
| |
| security vulnerability: libcurl URL Buffer Overflow |
| |
| January 2006: |
| |
| We dropped support for Gopher. We found bugs in the implementation that |
| turned out having been introduced years ago, so with the conclusion that |
| nobody had found out in all this time we removed it instead of fixing it. |
| |
| March 2006: |
| |
| security vulnerability: libcurl TFTP Packet Buffer Overflow |
| |
| April 2006: |
| |
| Added the multi_socket() API |
| |
| September 2006: |
| |
| The major SONAME number for libcurl was bumped to 4 due to the removal of |
| ftp third party transfer support. |
| |
| November 2006: |
| |
| Added SCP and SFTP support |
| |
| February 2007: |
| |
| Added support for the Mozilla NSS library to do the SSL/TLS stuff |
| |
| July 2007: |
| |
| security vulnerability: libcurl GnuTLS insufficient cert verification |
| |
| November 2008: |
| |
| Command line options: 128 |
| curl_easy_setopt() options: 158 |
| Public functions in libcurl: 58 |
| Known libcurl bindings: 37 |
| Contributors: 683 |
| |
| 145,000 unique visitors. >100 GB downloaded. |
| |
| March 2009: |
| |
| security vulnerability: libcurl Arbitrary File Access |
| |
| August 2009: |
| |
| security vulnerability: libcurl embedded zero in cert name |
| |
| December 2009: |
| |
| Added support for IMAP, POP3 and SMTP |
| |
| January 2010: |
| |
| Added support for RTSP |
| |
| February 2010: |
| |
| security vulnerability: libcurl data callback excessive length |
| |
| March 2010: |
| |
| The project switched over to use git instead of CVS for source code control |
| |
| May 2010: |
| |
| Added support for RTMP |
| |
| Added support for PolarSSL to do the SSL/TLS stuff |
| |
| August 2010: |
| |
| Public curl releases: 117 |
| Command line options: 138 |
| curl_easy_setopt() options: 180 |
| Public functions in libcurl: 58 |
| Known libcurl bindings: 39 |
| Contributors: 808 |
| |
| Gopher support added (re-added actually) |