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>