Apache CouchDB README
=====================

Installation
------------

For a low-level guide, see:

    INSTALL

For a high-level guide to Unix-like systems, inc. Mac OS X and Ubuntu, see:

    INSTALL.Unix

For a high-level guide to Microsoft Windows, see:

    INSTALL.Windows

Follow the proper instructions to get CouchDB installed on your system.

If you're having problems, skip to the next section.

Troubleshooting
----------------

For troubleshooting, see:

    http://wiki.apache.org/couchdb/Troubleshooting

If you're getting a cryptic error message, see:

    http://wiki.apache.org/couchdb/Error_messages

For general help, see:

     http://couchdb.apache.org/community/lists.html

The mailing lists provide a wealth of support and knowledge for you to tap into.
Feel free to drop by with your questions or discussion. See the official CouchDB
website for more information about our community resources.

Running the Testsuite
---------------------

Run the testsuite for couch.js and jquery.couch.js by browsing here:

    http://127.0.0.1:5984/_utils/spec/run.html

It should work in at least Firefox >= 3.6 with Private Browsing mode enabled.

Read more about JSpec here:

    http://jspec.info/

When you change the specs, but your changes have no effect, manually reload
the changed spec file in the browser. When the spec that tests erlang views
fails, make sure you have enabled Erlang views as described here:
   
       http://wiki.apache.org/couchdb/EnableErlangViews

Cryptographic Software Notice
-----------------------------

This distribution includes cryptographic software. The country in which you
currently reside may have restrictions on the import, possession, use, and/or
re-export to another country, of encryption software. BEFORE using any
encryption software, please check your country's laws, regulations and policies
concerning the import, possession, or use, and re-export of encryption software,
to see if this is permitted. See <http://www.wassenaar.org/> for more
information.

The U.S. Government Department of Commerce, Bureau of Industry and Security
(BIS), has classified this software as Export Commodity Control Number (ECCN)
5D002.C.1, which includes information security software using or performing
cryptographic functions with asymmetric algorithms. The form and manner of this
Apache Software Foundation distribution makes it eligible for export under the
License Exception ENC Technology Software Unrestricted (TSU) exception (see the
BIS Export Administration Regulations, Section 740.13) for both object code and
source code.

The following provides more details on the included cryptographic software:

CouchDB includes a HTTP client (ibrowse) with SSL functionality.
