Annotation of embedaddon/curl/docs/HISTORY.md, revision 1.1.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>