                                  _   _ ____  _     
  Project                     ___| | | |  _ \| |    
                             / __| | | | |_) | |    
                            | (__| |_| |  _ <| |___ 
                             \___|\___/|_| \_\_____|


This document has been introduced in order to let you find documents that
specify standards used by curl, software that extends curl, web pages with
"competing" utilities and information pages that describe some of the tools
that we use to build/compile/develop curl.

Standards
---------

  RFC 959  - Defines how FTP works

  RFC 1738 - Uniform Resource Locators

  RFC 1777 - defines the LDAP protocol

  RFC 1808 - Relative Uniform Resource Locators

  RFC 1867 - Form-based File Upload in HTML

  RFC 1950 - ZLIB Compressed Data Format Specification

  RFC 1951 - DEFLATE Compressed Data Format Specification

  RFC 1952 - gzip compression format

  RFC 1959 - LDAP URL syntax

  RFC 2045-2049 - Everything you need to know about MIME! (needed for form
                  based upload)

  RFC 2068 - HTTP 1.1 (obsoleted by RFC 2616)

  RFC 2109 - HTTP State Management Mechanism (cookie stuff)
           - Also, read Netscape's specification at
             http://www.netscape.com/newsref/std/cookie_spec.html

  RFC 2183 - "The Content-Disposition Header Field"

  RFC 2229 - "A Dictionary Server Protocol"

  RFC 2255 - Newer LDAP URL syntax document.

  RFC 2231 - "MIME Parameter Value and Encoded Word Extensions:
             Character Sets, Languages, and Continuations"

  RFC 2388 - "Returning Values from Forms: multipart/form-data"
             Use this as an addition to the 1867 

  RFC 2396 - "Uniform Resource Identifiers: Generic Syntax and Semantics" This
             one obsoletes 1738, but since 1738 is often mentioned I've left
             it in this list.

  RFC 2428 - "FTP Extensions for IPv6 and NATs"

  RFC 2616 - HTTP 1.1, the latest

  RFC 2617 - HTTP Authentication

  RFC 2718 - "Guidelines for new URL Schemes"

  RFC 2732 - "Format for Literal IPv6 Addresses in URL's"

Compilers
---------
  MingW32 - http://www.xraylith.wisc.edu/~khan/software/gnu-win32/index.html

  gcc     - http://www.gnu.org/software/gcc/gcc.html

Software
--------
  OpenSSL -  http://www.openssl.org

  OpenLDAP - http://www.openldap.org

  zlib -     http://www.cdrom.com/pub/infozip/zlib/

Similar Tools
-------------
  wget    - http://www.gnu.org/software/wget/wget.html

  snarf   - http://www.xach.com/snarf/

  lynx    - http://lynx.browser.org/ (well at least when -dump is used)

  swebget - http://www.uni-hildesheim.de/~smol0075/swebget/

Related Software
----------------
  ftpparse - http://cr.yp.to/ftpparse.html parses FTP LIST responses

  autoconf - http://www.gnu.org/software/autoconf/autoconf.html

  automake - http://www.gnu.org/software/automake/automake.html

  bison    - http://www.gnu.org/software/bison/bison.html

  gzip     - http://www.gnu.org/software/gzip/gzip.html

  tar      - http://www.gnu.org/software/tar/tar.html

  libtool  - http://www.gnu.org/software/libtool/libtool.html
