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.

Foss Sthlm #1 - curl

3,335 views

Published on

Slides in Swedish with a quick overview of curl, libcurl and the cURL projcet in general.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Foss Sthlm #1 - curl

  1. 1. Alla gillar curl
  2. 2. cURL <ul><li>curl
  3. 3. libcurl
  4. 4. Överför data med internet-protokoll: FTP, FTPS, HTTP, HTT PS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, POP3, IMAP, SMTP, RTSP och FILE </li></ul>
  5. 5. användare <ul><li>Linux, Mac OS X, AIX, IRIX, Solaris, *BSD, UnixWare, HP-UX
  6. 6. Adobe, AOL, Apple, Bwin, Canonical, CERN, Cisco, Garmin, Google, Facebook, F-Secure, IBM, Linden Lab, Motorola, MacAfee, Nortel, Neuros, Oracle, Panasonic, Polaroid, RSA Inc, SAS Institute, SEB, Siemens, Sony, Spotify, Sun, Symantec, SwissCom, Vmware, Voddler, Yahoo, Zimbra etc
  7. 7. OpenOffice.org, git, Firefox3, Gnash, gimp, libtorrent, Boinc, Xen, Gizmo, metadl, curl-loader, grip, UnrealIRCd, Aegis, Cmake, slapt-get, Xine, AlsaPlayer, xmms2, EmBrowser, OpenVRML </li></ul>
  8. 8. automatik <ul><li>136 flaggor...
  9. 9. Som kan anges i en config-fil och ...
  10. 10. Som modifierar hur curl beter sig
  11. 11. Upprepa överföringar (utan GUI)
  12. 12. 'man curl' är din vän </li></ul>
  13. 13. kommandoraden <ul><li>curl http://curl.haxx.se/ -o storehere
  14. 14. curl ftp://curl.haxx.se/ -o storehere
  15. 15. curl https://curl.haxx.se / -o storehere
  16. 16. curl sftp://curl.haxx.se/ -u me:pwd -o storehere
  17. 17. curl scp://curl.haxx.se/ -o storehere
  18. 18. curl tftp://curl.haxx.se/ -o storehere
  19. 19. curl -T uploadfile ftp://curl.haxx.se/tohere/
  20. 20. curl -T uploadfile https://curl.haxx.se/tohere/ </li></ul>
  21. 21. libcurl <ul><li>Samma grej fast ett bibliotek
  22. 22. API för överföring av data
  23. 23. C89 för portabilitet: 40 bindings
  24. 24. Innehållsagnostisk
  25. 25. Blocking eller non-blocking
  26. 26. Abstraherar protokoll-detaljer
  27. 27. Hög prestanda (c10k+ etc)
  28. 28. Tredjeparts-bibliotek för subfunktioner </li></ul>
  29. 29. Varför nyttja libcurl? <ul><li>Fritt, öppet och gratis
  30. 30. Tråd-säkert
  31. 31. Ipv6-kompatibelt
  32. 32. Feature-packat
  33. 33. Bra supportat och underhållet
  34. 34. Snabbt!
  35. 35. Bra dokumenterat
  36. 36. Mycket portabelt </li></ul>
  37. 37. Enkelt! <ul><li>En libcurl-applikation kan vara riktigt enkel: </li></ul>int main(void) { CURL *curl; CURLcode result; curl = curl_easy_init (); if(curl) { curl_easy_setopt (curl, CURLOPT_URL, &quot; http://curl.haxx.se &quot;); /* set more options here... */ result = curl_easy_ perform (curl); curl_easy_cleanup (curl); } return 0; }
  38. 38. Projektet <ul><li>Jag började 1997
  39. 39. Många drive-by, scratch-an-itch
  40. 40. Liten “core”
  41. 41. >700 contributors
  42. 42. MIT
  43. 43. Mailing lists!
  44. 44. #curl
  45. 45. Oberoende </li></ul>
  46. 46. Releaser <ul><li>Varannan månad
  47. 47. 25 buggfixar
  48. 48. 8 förändringar
  49. 49. 20 personer
  50. 50. På trunk </li></ul>
  51. 51. Sa jag portabelt? <ul><li>Solaris, NetBSD, FreeBSD, OpenBSD, Darwin, HPUX, IRIX, AIX, Tru64, Linux, UnixWare, HURD, Windows, Amiga, OS/2, BeOs, Mac OS X, Ultrix, QNX, OpenVMS, RISC OS, Novell NetWare, DOS, MVS, VxWorks, Windows CE, OS/400, CellOS (PS3), iPhone, Symbian, Android ...
  52. 52. Alpha, HP-PA, HP3000, MIPS, PowerPC, POWER, SuperH4, Sparc, ARM, i386, ia64, m68k, s390, NiosII, Microblaze...
  53. 53. Inget annat transfer-lib är ens i närheten
  54. 54. automatbyggen och tester
  55. 55. Beror på att användare rapporterar problem </li></ul>
  56. 56. bindningar <ul>Ada95, Basic, C++, Ch, Cocoa, D, Dylan, Eiffel, Euphoria, Falcon, Ferite, Gambas, glib/GTK+, Haskell, Java, Lisp, Lua, Mono, .NET, Object-Pascal, O'caml, Pascal, Perl, PHP, Postgres, Python, R, Rexx, RPG, Ruby, Scheme, S-Lang, Smalltalk, SP-Forth, SPL, Tcl, Visual Basic, Visual Foxpro, Q, wxWidgets, XBLite och fler! </ul><ul><li>alla större miljöer har bindningar
  57. 57. Underhålls utanför cURL-projektet
  58. 58. Pycurl och PHP/CURL populära </li></ul>
  59. 59. curl vs wget <ul><li>libcurl
  60. 60. pipes
  61. 61. return codes
  62. 62. single-shot
  63. 63. many protocols
  64. 64. more portable
  65. 65. more SSL libraries
  66. 66. more HTTP auth
  67. 67. bidirectional </li></ul><ul><li>command line
  68. 68. recursive fetch
  69. 69. older
  70. 70. much less developer activity
  71. 71. HTTP 1.0
  72. 72. GPL
  73. 73. GNU </li></ul>curl wget
  74. 74. ! Hjälpa till! <ul><li>Buggrapporter!
  75. 75. Dokumentera!
  76. 76. Support på mail och IRC!
  77. 77. Fixa enkla buggar!
  78. 78. Fixa svåra buggar!
  79. 79. Lägg till nya features! </li></ul>
  80. 80. curl.haxx.se

×