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>