curl and new technologies   March 5, 2013
Daniel Stenberg●    Free Software●    Network hacker●    Embedded developer●    Consultant    Email:     daniel@haxx.se   ...
BeforeNowThenHow?
Questions?  Interrupt!
What is curl?●    curl and libcurl●    Transfer data using application     protocols
Put in more wordscurl is a command line tool for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, Goph...
500 million   users
Really 500 million users?●    Mac OS X           ●                           PHP sites●    TVs                ●           ...
One day 15 years ago...●    Scratched an itch
Contributors over time●    1000+ in total●    Increasing linearly
Number of committers●    74 unique within 12 months●    125 within 24●    174 within 36
Mailing lists●    4900 mails during 2012●    curl­library has 1300+ subscribers
Lines of code
Bug reports●    Not counting them sent per mail●    ~1200 submitted during 13 years●    one new report every 4th day
>130 companies use curlbl a Adobe, AOL, Apple, Blizzard, CERN, Cisco, Electronic Arts, Facebook, Garmin, Google, IBM, LG, ...
42 bindingsAda95, Basic, C++, Ch, Cocoa, D, Dylan, Eiffel, Euphoria, Falcon, Ferite, Gambas, glib/GTK+, Guile, Haskell, IL...
131 releases●    bi­monthly release cycle
16 security problems●    Security is hard●    Problems are unavoidable●    Deal with them properly
It is personalIve given this project some 10000 spare time hours, I started it, I lead it, Ive done the design and most of...
How does it run?●    Volunteers●    Reviews by mail●    Mailing list driven●    Test suite and autobuilds●    Small core t...
When is it done?●    How long is a rope?●    When is the last bug found?●    When do we stop adding     functionality?
New Technology●    Internet, protocols and file     transfers evolve●    Curl has to evolve along●    You can help!
Happy Eyeballs●    Dual­stack behaviors●    RFC6555●    Basically two connect attempts     at once
DANE●    DNS­Based Authentication of     Named Entities (DANE)●    RFC6698●    Because SSLs CA system is     broken●    Re...
SRV/URI records●    DNS based hints to find (web)     servers●    In use by non­HTTP protocols●    Latency penalties●    T...
HTTP pipelining●    Present in HTTP 1.1, RFC2616●    Riddled with server problems●    Circumvents latency issues●    Comin...
HTTP2 (SPDY)●    Discussed in IETFs httpbis WG●    Based on SPDY/3●    SCTP and SSH like with multiple     streams within ...
New HTTP auth●    Passwords must die●    Existing auth methods are full of     problems●    Digest relies on MD5●    But.....
SSL to proxy●    SSL over proxy is usually done with     a HTTP CONNECT over plain HTTP●    Increase privacy within     or...
… and much much more!●    It never ends●    Transports are fundamental to     Internet●    curl transports the Internet
How?●    Companies fund features●    Individuals fix problems●    Join us and help out!
Thank youDaniel Stenberg <daniel@haxx.se>
Upcoming SlideShare
Loading in...5
×

curl and new technologies

6,962

Published on

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

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,962
On Slideshare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
34
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

curl and new technologies

  1. 1. curl and new technologies March 5, 2013
  2. 2. Daniel Stenberg● Free Software● Network hacker● Embedded developer● Consultant Email: daniel@haxx.se Twitter: @bagder Web: daniel.haxx.se Blog: daniel.haxx.se/blog
  3. 3. BeforeNowThenHow?
  4. 4. Questions? Interrupt!
  5. 5. What is curl?● curl and libcurl● Transfer data using application  protocols
  6. 6. 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.
  7. 7. 500 million  users
  8. 8. Really 500 million users?● Mac OS X ● PHP sites● TVs ● ...● IOS● Linux● Games● Version control  systems
  9. 9. One day 15 years ago...● Scratched an itch
  10. 10. Contributors over time● 1000+ in total● Increasing linearly
  11. 11. Number of committers● 74 unique within 12 months● 125 within 24● 174 within 36
  12. 12. Mailing lists● 4900 mails during 2012● curl­library has 1300+ subscribers
  13. 13. Lines of code
  14. 14. Bug reports● Not counting them sent per mail● ~1200 submitted during 13 years● one new report every 4th day
  15. 15. >130 companies use curlbl 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...
  16. 16. 42 bindingsAda95, 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
  17. 17. 131 releases● bi­monthly release cycle
  18. 18. 16 security problems● Security is hard● Problems are unavoidable● Deal with them properly
  19. 19. It is personalIve given this project some 10000 spare time hours, I started it, I lead it, Ive done the design and most of the development.How can it not be personal?
  20. 20. How does it run?● Volunteers● Reviews by mail● Mailing list driven● Test suite and autobuilds● Small core team
  21. 21. When is it done?● How long is a rope?● When is the last bug found?● When do we stop adding  functionality?
  22. 22. New Technology● Internet, protocols and file  transfers evolve● Curl has to evolve along● You can help!
  23. 23. Happy Eyeballs● Dual­stack behaviors● RFC6555● Basically two connect attempts  at once
  24. 24. DANE● DNS­Based Authentication of  Named Entities (DANE)● RFC6698● Because SSLs CA system is  broken● Resolver dependency● Should use a lib
  25. 25. SRV/URI records● DNS based hints to find (web)  servers● In use by non­HTTP protocols● Latency penalties● Tricky resolver dependencies
  26. 26. HTTP pipelining● Present in HTTP 1.1, RFC2616● Riddled with server problems● Circumvents latency issues● Coming soon!
  27. 27. HTTP2 (SPDY)● Discussed in IETFs httpbis WG● Based on SPDY/3● SCTP and SSH like with multiple  streams within a physical TCP  connection● Spindly vs spdylay
  28. 28. New HTTP auth● Passwords must die● Existing auth methods are full of  problems● Digest relies on MD5● But... browser basically dont do  HTTP auth
  29. 29. 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
  30. 30. … and much much more!● It never ends● Transports are fundamental to  Internet● curl transports the Internet
  31. 31. How?● Companies fund features● Individuals fix problems● Join us and help out!
  32. 32. Thank youDaniel Stenberg <daniel@haxx.se>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×