187 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			187 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
                                  _   _ ____  _
 | 
						|
                              ___| | | |  _ \| |
 | 
						|
                             / __| | | | |_) | |
 | 
						|
                            | (__| |_| |  _ <| |___
 | 
						|
                             \___|\___/|_| \_\_____|
 | 
						|
 | 
						|
                          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.
 | 
						|
 | 
						|
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
 | 
						|
 | 
						|
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.
 | 
						|
 |