FLOSS Weekly 51

From The Official TWiT Wiki
Jump to: navigation, search
FLOSS Weekly
Episode 51

FLOSS Weekly 51: cURL

cURL, a command line tool for transferring files with URL syntax.

Guest

Daniel Stenberg for cURL


curl was started in 1997 by Daniel as part of a IRC bot. It was first developed as a command line tool and later the libcurl library was build from the network code.

curl can handle FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS and FILE. 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.

There are about 10 core developer.

They have about a million downloads a year.

curl runs on all major operating systems (Windows, OSX, LINUX and lots of other UNIX variants) and on different CPU Architectures.

wget is a tool similar to curl.

curl allows you to use url globbing:

-g/--globoff
      This option switches off the "URL globbing parser". When you set
      this  option, you can specify URLs that contain the letters {}[]
      without having them being interpreted by curl itself. Note  that
      these  letters are not normal legal URL contents but they should
      be encoded according to the URI standard.


Use the remote filename to store the downloaded file

-O/--remote-name
      Write  output to a local file named like the remote file we get.
      (Only the file part of the remote file is used, the path is  cut
      off.)

      The  remote  file  name  to use for saving is extracted from the
      given URL, nothing else.

      You may use this option as many times  as  you  have  number  of
      URLs.

To show some extra informations about the download

-w/--write-out <format>
      Defines what to display on stdout after a completed and success‐
      ful  operation.  The  format  is a string that may contain plain
      text mixed with any number of variables. The string can be spec‐
      ified  as "string", to get read from a particular file you spec‐
      ify it "@filename" and to tell curl  to  read  the  format  from
      stdin you write "@-".

Projects that use curl:


curl is licensed under the MIT/X11 license.

The curl project uses CVS source code management system. Mostly because they rely on a custom testing tool that heavily integrates with cvs.

The developers communicate through Mailing Lists. The lists are also the main entry point for feature requests and new developers.

curl is written in C.

Daniel also works on the following projects:

There are more than 30 language bindings for all major programming languages. These bindings are developed as separate projects.


Previous Show - Next Show