TclCurl logo
TclCurl logo small
Main
Docs
Download
Credits

libcurl logo

Getleft logo

TclCurl gives the Tcl programmer a binding to libcurl, a library written by Daniel Stenberg.

Features

  • Misc
    • full URL syntax
    • custom maximum download time
    • custom least download speed acceptable
    • multiple URLs
    • guesses protocol from host name unless specified
    • uses .netrc
    • progress bar/time specs while downloading
    • "standard" proxy environment variables support
    • config file support
    • redirectable stderr
    • use selected network interface for outgoing traffic
    • IPv6 support
    • persistant connections

  • HTTP
    • HTTP/1.1 compliant
    • GET
    • PUT
    • HEAD
    • POST
    • multipart POST
    • authentication
    • resume (both GET and PUT)
    • follow redirects
    • maximum amount of redirects to follow
    • custom HTTP request
    • cookie get/send fully parsed
    • understands the netscape cookie file format
    • custom headers (that can replace/remove internally generated headers)
    • custom user-agent string
    • custom referer string
    • range
    • proxy authentication
    • time conditions
    • via http-proxy
    • retrieve file modification date
    • Content-Encoding support for deflate and gzip
    • "Transfer-Encoding: chunked" support for "uploads"

  • HTTPS (*1)
    • (all the HTTP features)
    • using certificates
    • verify server certificate
    • via http-proxy
    • select desired encryption
    • force usage of a specific SSL version (SSLv2(*2), SSLv3 or TLSv1)

  • FTP
    • download
    • authentication
    • kerberos security
    • active/passive using PORT, EPRT, PASV or EPSV
    • single file size information (compare to HTTP HEAD)
    • 'type=' URL support
    • dir listing
    • dir listing names-only
    • upload
    • upload append
    • upload via http-proxy as HTTP PUT
    • download resume
    • upload resume
    • custom ftp commands (before and/or after the transfer)
    • simple "range" support
    • via http-proxy
    • all operations can be tunneled through a http-proxy
    • customizable to retrieve file modification date
    • no dir depth limit

  • FTPS (*1)

    • implicit ftps:// support that use SSL on both connections
    • explicit "AUTH TSL" and "AUTH SSL" usage to "upgrade" plain ftp:// connection to use SSL for both or one of the connections.

  • SCP (*3)
    • both password and public key auth

  • SFTP (*3)
    • both password and public key auth
    • with custom commands sent before/after the transfer

  • TFTP
    • download / upload

  • TELNET
    • connection negotiation
    • custom telnet options
    • stdin/stdout I/O

  • LDAP (*4)
    • full LDAP URL support

  • DICT
    • extended DICT URL support

  • FILE
    • URL support
    • "uploads"
    • resume

  • Also supports IMAP, IMAPS, POP, POP3, SMTP, SMTPS and gopher

*1 = requires OpenSSL

*2 = requires OpenSSL or NSS, as GnuTLS only supports SSLv3 and TLSv1

*3 = requires libssh2

*4 = requires OpenLDAP

License

TclCurl is licensed under the usual terms of the BSD-like Tcl license. This basicly means, you can do whatever you want with it, except claim that you wrote it yourself.

It also means that TclCurl comes with NO WARRANTY whatsoever.


Andrés García
OSZAR »