curl and new technologies

32
curl and new technologies March 5, 2013

Upload: daniel-stenberg

Post on 29-Nov-2014

6.086 views

Category:

Technology


1 download

DESCRIPTION

These are the slides from the talk Daniel Stenberg did at the foss-sthlm meetup 12 on March 5 2013 in Stockholm Sweden.

TRANSCRIPT

Page 1: curl and new technologies

curl and new technologies

March 5, 2013

Page 2: curl and new technologies

Daniel Stenberg

Email: [email protected]: @bagderWeb: daniel.haxx.seBlog: daniel.haxx.se/blog

● Free Software● Network hacker● Embedded developer● Consultant

Page 3: curl and new technologies

Before

Now

Then

How?

Page 4: curl and new technologies

Questions?

Interrupt!

Page 5: curl and new technologies

What is curl?● curl and libcurl● Transfer data using application 

protocols

Page 6: curl and new technologies

Put in more wordscurl is a command line tool for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, kerberos...), file transfer resume, proxy tunneling and a busload of other useful tricks.

Page 7: curl and new technologies

500 million users

Page 8: curl and new technologies

Really 500 million users?● Mac OS X● TVs● IOS● Linux● Games● Version control 

systems

● PHP sites● ...

Page 9: curl and new technologies

One day 15 years ago...● Scratched an itch

Page 10: curl and new technologies

Contributors over time● 1000+ in total● Increasing linearly

Page 11: curl and new technologies

Number of committers● 74 unique within 12 months● 125 within 24● 174 within 36

Page 12: curl and new technologies

Mailing lists● 4900 mails during 2012● curl­library has 1300+ subscribers

Page 13: curl and new technologies

Lines of code

Page 14: curl and new technologies

Bug reports● Not counting them sent per mail● ~1200 submitted during 13 years● one new report every 4th day

Page 15: curl and new technologies

>130 companies use curl

bl a Adobe, AOL, Apple, Blizzard, CERN, Cisco, Electronic Arts, Facebook, Garmin, Google, IBM, LG, Linden Labs, McAfee, Motorola, Nortel, Oracle, Palm, Panasonic, Philips, Polaroid, RBS, Research in Motion, RSA Security, SanDisk, SAS Institute, SEB, Siemens, Sony, Spotify, Sun, Swisscom, Symantec, Toshiba, Vmware, Yahoo...

Page 16: curl and new technologies

42 bindings

Ada95, Basic, C++, Ch, Cocoa, D, Dylan, Eiffel, Euphoria, Falcon, Ferite, Gambas, glib/GTK+, Guile, Haskell, ILE/RPG, Java, Lisp, Lua, Mono, .NET, Object­Pascal, Ocaml, Pascal, Perl, PHP, Postgres, Python, R, Rexx, Ruby, Scheme, S­Lang, Smalltalk, SP­Forth, SPL, Tcl, Visual Basic, Visual FoxPro, Q, wxWidgets, XBLite

Page 17: curl and new technologies

131 releases● bi­monthly release cycle

Page 18: curl and new technologies

16 security problems● Security is hard● Problems are unavoidable● Deal with them properly

Page 19: curl and new technologies

It is personal

I've given this project some 10000 spare time hours, I started it, I lead it, I've done the design and most of the development.

How can it not be personal?

Page 20: curl and new technologies

How does it run?● Volunteers● Reviews by mail● Mailing list driven● Test suite and autobuilds● Small core team

Page 21: curl and new technologies

When is it done?● How long is a rope?● When is the last bug found?● When do we stop adding 

functionality?

Page 22: curl and new technologies

New Technology● Internet, protocols and file 

transfers evolve● Curl has to evolve along● You can help!

Page 23: curl and new technologies

Happy Eyeballs● Dual­stack behaviors● RFC6555● Basically two connect attempts 

at once

Page 24: curl and new technologies

DANE● DNS­Based Authentication of 

Named Entities (DANE)● RFC6698● Because SSL's CA system is 

broken● Resolver dependency● Should use a lib

Page 25: curl and new technologies

SRV/URI records● DNS based hints to find (web) 

servers● In use by non­HTTP protocols● Latency penalties● Tricky resolver dependencies

Page 26: curl and new technologies

HTTP pipelining● Present in HTTP 1.1, RFC2616● Riddled with server problems● Circumvents latency issues● Coming soon!

Page 27: curl and new technologies

HTTP2 (SPDY)● Discussed in IETF's httpbis WG● Based on SPDY/3● SCTP and SSH like with multiple 

streams within a physical TCP connection

● Spindly vs spdylay

Page 28: curl and new technologies

New HTTP auth● Passwords must die● Existing auth methods are full of 

problems● Digest relies on MD5● But... browser basically don't do 

HTTP auth

Page 29: curl and new technologies

SSL to proxy● SSL over proxy is usually done with 

a HTTP CONNECT over plain HTTP● Increase privacy within 

organizations● Supported by Chrome● Tricky because of SSL backends

Page 30: curl and new technologies

… and much much more!● It never ends● Transports are fundamental to 

Internet● curl transports the Internet

Page 31: curl and new technologies

How?● Companies fund features● Individuals fix problems

● Join us and help out!

Page 32: curl and new technologies

Thank you

Daniel Stenberg <[email protected]>