Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

curl and new technologies


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
  • Be the first to comment

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: Twitter: @bagder Web: 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 <>