123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 |
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
- \___|\___/|_| \_\_____|
- 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)
|