Annotation of embedaddon/curl/docs/HISTORY.md, revision 1.1

1.1     ! misho       1: How curl Became Like This
        !             2: =========================
        !             3: 
        !             4: Towards the end of 1996, Daniel Stenberg was spending time writing an IRC bot
        !             5: for an Amiga related channel on EFnet. He then came up with the idea to make
        !             6: currency-exchange calculations available to Internet Relay Chat (IRC)
        !             7: users. All the necessary data were published on the Web; he just needed to
        !             8: automate their retrieval.
        !             9: 
        !            10: Daniel simply adopted an existing command-line open-source tool, httpget, that
        !            11: Brazilian Rafael Sagula had written and recently released version 0.1 of. After
        !            12: a few minor adjustments, it did just what he needed.
        !            13: 
        !            14: 1997
        !            15: ----
        !            16: 
        !            17: HttpGet 1.0 was released on April 8th 1997 with brand new HTTP proxy support.
        !            18: 
        !            19: We soon found and fixed support for getting currencies over GOPHER.  Once FTP
        !            20: download support was added, the name of the project was changed and urlget 2.0
        !            21: was released in August 1997. The http-only days were already passed.
        !            22: 
        !            23: 1998
        !            24: ----
        !            25: 
        !            26: The project slowly grew bigger. When upload capabilities were added and the
        !            27: name once again was misleading, a second name change was made and on March 20,
        !            28: 1998 curl 4 was released. (The version numbering from the previous names was
        !            29: kept.)
        !            30: 
        !            31: (Unrelated to this project a company called Curl Corporation registered a US
        !            32: trademark on the name "CURL" on May 18 1998. That company had then already
        !            33: registered the curl.com domain back in November of the previous year. All this
        !            34: was revealed to us much later.)
        !            35: 
        !            36: SSL support was added, powered by the SSLeay library.
        !            37: 
        !            38: August: first announcement of curl on freshmeat.net.
        !            39: 
        !            40: October: with the curl 4.9 release and the introduction of cookie support,
        !            41: curl was no longer released under the GPL license. Now we're at 4000 lines of
        !            42: code, we switched over to the MPL license to restrict the effects of
        !            43: "copyleft".
        !            44: 
        !            45: November: configure script and reported successful compiles on several
        !            46: major operating systems. The never-quite-understood -F option was added and
        !            47: curl could now simulate quite a lot of a browser. TELNET support was added.
        !            48: 
        !            49: Curl 5 was released in December 1998 and introduced the first ever curl man
        !            50: page. People started making Linux RPM packages out of it.
        !            51: 
        !            52: 1999
        !            53: ----
        !            54: 
        !            55: January: DICT support added.
        !            56: 
        !            57: OpenSSL took over and SSLeay was abandoned.
        !            58: 
        !            59: May: first Debian package.
        !            60: 
        !            61: August: LDAP:// and FILE:// support added. The curl web site gets 1300 visits
        !            62: weekly. Moved site to curl.haxx.nu.
        !            63: 
        !            64: September: Released curl 6.0. 15000 lines of code.
        !            65: 
        !            66: December 28: added the project on Sourceforge and started using its services
        !            67: for managing the project.
        !            68: 
        !            69: 2000
        !            70: ----
        !            71: 
        !            72: Spring: major internal overhaul to provide a suitable library interface.
        !            73: The first non-beta release was named 7.1 and arrived in August. This offered
        !            74: the easy interface and turned out to be the beginning of actually getting
        !            75: other software and programs to be based on and powered by libcurl. Almost
        !            76: 20000 lines of code.
        !            77: 
        !            78: June: the curl site moves to "curl.haxx.se"
        !            79: 
        !            80: August, the curl web site gets 4000 visits weekly.
        !            81: 
        !            82: The PHP guys adopted libcurl already the same month, when the first ever third
        !            83: party libcurl binding showed up. CURL has been a supported module in PHP since
        !            84: the release of PHP 4.0.2. This would soon get followers. More than 16
        !            85: different bindings exist at the time of this writing.
        !            86: 
        !            87: September: kerberos4 support was added.
        !            88: 
        !            89: November: started the work on a test suite for curl. It was later re-written
        !            90: from scratch again. The libcurl major SONAME number was set to 1.
        !            91: 
        !            92: 2001
        !            93: ----
        !            94: 
        !            95: January: Daniel released curl 7.5.2 under a new license again: MIT (or
        !            96: MPL). The MIT license is extremely liberal and can be combined with GPL
        !            97: in other projects. This would finally put an end to the "complaints" from
        !            98: people involved in GPLed projects that previously were prohibited from using
        !            99: libcurl while it was released under MPL only. (Due to the fact that MPL is
        !           100: deemed "GPL incompatible".)
        !           101: 
        !           102: March 22: curl supports HTTP 1.1 starting with the release of 7.7. This
        !           103: also introduced libcurl's ability to do persistent connections. 24000 lines of
        !           104: code. The libcurl major SONAME number was bumped to 2 due to this overhaul.
        !           105: The first experimental ftps:// support was added.
        !           106: 
        !           107: August: curl is bundled in Mac OS X, 10.1. It was already becoming more and
        !           108: more of a standard utility of Linux distributions and a regular in the BSD
        !           109: ports collections. The curl web site gets 8000 visits weekly. Curl Corporation
        !           110: contacted Daniel to discuss "the name issue". After Daniel's reply, they have
        !           111: never since got back in touch again.
        !           112: 
        !           113: September: libcurl 7.9 introduces cookie jar and curl_formadd(). During the
        !           114: forthcoming 7.9.x releases, we introduced the multi interface slowly and
        !           115: without many whistles.
        !           116: 
        !           117: 2002
        !           118: ----
        !           119: 
        !           120: June: the curl web site gets 13000 visits weekly. curl and libcurl is
        !           121: 35000 lines of code. Reported successful compiles on more than 40 combinations
        !           122: of CPUs and operating systems.
        !           123: 
        !           124: To estimate number of users of the curl tool or libcurl library is next to
        !           125: impossible. Around 5000 downloaded packages each week from the main site gives
        !           126: a hint, but the packages are mirrored extensively, bundled with numerous OS
        !           127: distributions and otherwise retrieved as part of other software.
        !           128: 
        !           129: September: with the release of curl 7.10 it is released under the MIT license
        !           130: only.
        !           131: 
        !           132: 2003
        !           133: ----
        !           134: 
        !           135: January: Started working on the distributed curl tests. The autobuilds.
        !           136: 
        !           137: February: the curl site averages at 20000 visits weekly. At any given moment,
        !           138: there's an average of 3 people browsing the curl.haxx.se site.
        !           139: 
        !           140: Multiple new authentication schemes are supported: Digest (May), NTLM (June)
        !           141: and Negotiate (June).
        !           142: 
        !           143: November: curl 7.10.8 is released. 45000 lines of code. ~55000 unique visitors
        !           144: to the curl.haxx.se site. Five official web mirrors.
        !           145: 
        !           146: December: full-fledged SSL for FTP is supported.
        !           147: 
        !           148: 2004
        !           149: ----
        !           150: 
        !           151: January: curl 7.11.0 introduced large file support.
        !           152: 
        !           153: June: curl 7.12.0 introduced IDN support. 10 official web mirrors.
        !           154: 
        !           155: This release bumped the major SONAME to 3 due to the removal of the
        !           156: curl_formparse() function
        !           157: 
        !           158: August: Curl and libcurl 7.12.1
        !           159: 
        !           160:     Public curl release number:                82
        !           161:     Releases counted from the very beginning: 109
        !           162:     Available command line options:            96
        !           163:     Available curl_easy_setopt() options:     120
        !           164:     Number of public functions in libcurl:     36
        !           165:     Amount of public web site mirrors:         12
        !           166:     Number of known libcurl bindings:          26
        !           167: 
        !           168: 2005
        !           169: ----
        !           170: 
        !           171: April: GnuTLS can now optionally be used for the secure layer when curl is
        !           172: built.
        !           173: 
        !           174: April: Added the multi_socket() API
        !           175: 
        !           176: September: TFTP support was added.
        !           177: 
        !           178: More than 100,000 unique visitors of the curl web site. 25 mirrors.
        !           179: 
        !           180: December: security vulnerability: libcurl URL Buffer Overflow
        !           181: 
        !           182: 2006
        !           183: ----
        !           184: 
        !           185: January: We dropped support for Gopher. We found bugs in the implementation
        !           186: that turned out to have been introduced years ago, so with the conclusion that
        !           187: nobody had found out in all this time we removed it instead of fixing it.
        !           188: 
        !           189: March: security vulnerability: libcurl TFTP Packet Buffer Overflow
        !           190: 
        !           191: September: The major SONAME number for libcurl was bumped to 4 due to the
        !           192: removal of ftp third party transfer support.
        !           193: 
        !           194: November: Added SCP and SFTP support
        !           195: 
        !           196: 2007
        !           197: ----
        !           198: 
        !           199: February: Added support for the Mozilla NSS library to do the SSL/TLS stuff
        !           200: 
        !           201: July: security vulnerability: libcurl GnuTLS insufficient cert verification
        !           202: 
        !           203: 2008
        !           204: ----
        !           205: 
        !           206: November:
        !           207: 
        !           208:     Command line options:         128
        !           209:     curl_easy_setopt() options:   158
        !           210:     Public functions in libcurl:   58
        !           211:     Known libcurl bindings:        37
        !           212:     Contributors:                 683
        !           213: 
        !           214:  145,000 unique visitors. >100 GB downloaded.
        !           215: 
        !           216: 2009
        !           217: ----
        !           218: 
        !           219: March: security vulnerability: libcurl Arbitrary File Access
        !           220: 
        !           221: April: added CMake support
        !           222: 
        !           223: August: security vulnerability: libcurl embedded zero in cert name
        !           224: 
        !           225: December: Added support for IMAP, POP3 and SMTP
        !           226: 
        !           227: 2010
        !           228: ----
        !           229: 
        !           230: January: Added support for RTSP
        !           231: 
        !           232: February: security vulnerability: libcurl data callback excessive length
        !           233: 
        !           234: March: The project switched over to use git (hosted by github) instead of CVS
        !           235: for source code control
        !           236: 
        !           237: May: Added support for RTMP
        !           238: 
        !           239: Added support for PolarSSL to do the SSL/TLS stuff
        !           240: 
        !           241: August:
        !           242: 
        !           243:     Public curl releases:         117
        !           244:     Command line options:         138
        !           245:     curl_easy_setopt() options:   180
        !           246:     Public functions in libcurl:   58
        !           247:     Known libcurl bindings:        39
        !           248:     Contributors:                 808
        !           249: 
        !           250:  Gopher support added (re-added actually, see January 2006)
        !           251: 
        !           252: 2011
        !           253: ----
        !           254: 
        !           255: February: added support for the axTLS backend
        !           256: 
        !           257: April: added the cyassl backend (later renamed to WolfSSL)
        !           258: 
        !           259: 2012
        !           260: ----
        !           261: 
        !           262:  July: Added support for Schannel (native Windows TLS backend) and Darwin SSL
        !           263:  (Native Mac OS X and iOS TLS backend).
        !           264: 
        !           265:  Supports metalink
        !           266: 
        !           267:  October: SSH-agent support.
        !           268: 
        !           269: 2013
        !           270: ----
        !           271: 
        !           272:  February: Cleaned up internals to always uses the "multi" non-blocking
        !           273:  approach internally and only expose the blocking API with a wrapper.
        !           274: 
        !           275:  September: First small steps on supporting HTTP/2 with nghttp2.
        !           276: 
        !           277:  October: Removed krb4 support.
        !           278: 
        !           279:  December: Happy eyeballs.
        !           280: 
        !           281: 2014
        !           282: ----
        !           283: 
        !           284:  March: first real release supporting HTTP/2
        !           285: 
        !           286:  September: Web site had 245,000 unique visitors and served 236GB data
        !           287: 
        !           288:  SMB and SMBS support
        !           289: 
        !           290: 2015
        !           291: ----
        !           292: 
        !           293:  June: support for multiplexing with HTTP/2
        !           294: 
        !           295:  August: support for HTTP/2 server push
        !           296: 
        !           297:  December: Public Suffix List
        !           298: 
        !           299: 2016
        !           300: ----
        !           301: 
        !           302:  January: the curl tool defaults to HTTP/2 for HTTPS URLs
        !           303: 
        !           304:  December: curl 7.52.0 introduced support for HTTPS-proxy!
        !           305: 
        !           306:  First TLS 1.3 support
        !           307: 
        !           308: 2017
        !           309: ----
        !           310: 
        !           311:  July: OSS-Fuzz started fuzzing libcurl
        !           312: 
        !           313:  September: Added Multi-SSL support
        !           314: 
        !           315:  The web site serves 3100 GB/month
        !           316: 
        !           317:     Public curl releases:         169
        !           318:     Command line options:         211
        !           319:     curl_easy_setopt() options:   249
        !           320:     Public functions in libcurl:  74
        !           321:     Contributors:                 1609
        !           322: 
        !           323:  October: SSLKEYLOGFILE support, new MIME API
        !           324: 
        !           325:  November: brotli
        !           326: 
        !           327: 2018
        !           328: ----
        !           329: 
        !           330:  January: new SSH backend powered by libssh
        !           331: 
        !           332:  March: starting with the 1803 release of Windows 10, curl is shipped bundled
        !           333:  with Microsoft's operating system.
        !           334: 
        !           335:  July: curl shows headers using bold type face
        !           336: 
        !           337:  October: added DNS-over-HTTPS (DoH) and the URL API
        !           338: 
        !           339:  MesaLink is a new supported TLS backend
        !           340: 
        !           341:  libcurl now does HTTP/2 (and multiplexing) by default on HTTPS URLs
        !           342: 
        !           343:  curl and libcurl are installed in an estimated 5 *billion* instances
        !           344:  world-wide.
        !           345: 
        !           346:  October 31: Curl and libcurl 7.62.0
        !           347: 
        !           348:     Public curl releases:         177
        !           349:     Command line options:         219
        !           350:     curl_easy_setopt() options:   261
        !           351:     Public functions in libcurl:  80
        !           352:     Contributors:                 1808
        !           353: 
        !           354: 2019
        !           355: ----
        !           356: 
        !           357:  August: the first HTTP/3 requests with curl.
        !           358: 
        !           359:  September: 7.66.0 is released and the tool offers parallel downloads

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>