Changes in 1.2.0
* Updated bundled erlang_oauth library to the latest version.
* cURL is no longer required to build CouchDB as it is only
required by the command line JS test runner.
* Added a native JSON parser.
* Optional file compression (database and view index files). This feature
is enabled by default.
* Several performance improvements, especially regarding database
writes and view indexing.
* Added a 'data_size' property to database and view group
information URIs.
* Added support for automatic compaction. This feature is disabled
by default, but it can be enabled via the .ini configuration.
* A new replicator implementation that offers more performance
and configuration options.
* Added optional field 'since_seq' to replication objects/documents.
* Simpler replication cancelation.
* The _active_tasks API now exposes more granular fields for each
task type.
* Futon's 'Status' screen (active tasks) now displays two new task
status fields: 'Started on' and 'Updated on'.
* Added built-in changes feed filter '_view'.
* Fixed old index file descriptor leaks after a view cleanup.
* Performance improvements for the built-in changes feed filters
'_doc_ids' and '_design'.
* Fixes to the '_changes' feed heartbeat option when combined with
a filter. It affected continuous pull replications with a filter.
* Fix use of OAuth with VHosts and URL rewriting.
* OAuth secrets can now be stored in the users system database.
* Documents in the _users database can no longer be read by everyone.
* Confidential information in the _replication database can no longer
be read by everyone.
* Password hashes are now calculated by CouchDB instead of the client.
* Allow persistent authentication cookies.
* The requested_path property of query server request objects now has
the path requested by clients before VHosts and rewriting.
* Fixed incorrect reduce query results when using pagination parameters.
* Made icu_driver work with Erlang R15B and later.
* Improvements to the build system and etap test suite.
* Avoid invalidating view indexes when running out of file descriptors.
* Log correct stacktrace in all cases.
* Improvements to log messages for file-related errors.
Changes:
* Support SpiderMonkey 1.8.5
* Add configurable maximum to the number of bytes returned by _log.
* Allow CommonJS modules to be an empty string.
* Bump minimum Erlang version to R13B02.
* Do not run deleted validate_doc_update functions.
* ETags for views include current sequence if include_docs=true.
* Fix bug where duplicates can appear in _changes feed.
* Fix bug where update handlers break after conflict resolution.
* Fix bug with _replicator where include "filter" could crash couch.
* Fix crashes when compacting large views.
* Fix file descriptor leak in _log
* Fix missing revisions in _changes?style=all_docs.
* Improve handling of compaction at max_dbs_open limit.
* JSONP responses now send "text/javascript" for Content-Type.
* Link to ICU 4.2 on Windows.
* Permit forward slashes in path to update functions.
* Reap couchjs processes that hit reduce_overflow error.
* Status code can be specified in update handlers.
* Support provides() in show functions.
* _view_cleanup when ddoc has no views now removes all index files.
* max_replication_retry_count now supports "infinity".
* Fix replication crash when source database has a document with empty ID.
* Fix deadlock when assigning couchjs processes to serve requests.
* Fixes to the document multipart PUT API.
* Fixes regarding file descriptor leaks for databases with views.
Also fixed INSTALL_PROGRAM patch to not break install-sh.
Changes since 1.0.1
============================================================================
HTTP Interface:
* Native SSL support.
* Added support for HTTP range requests for attachments.
* Added built-in filters for '_changes': '_doc_ids' and '_design'.
* Added configuration option for TCP_NODELAY aka "Nagle".
* Allow POSTing arguments to '_changes'.
* Allow 'keys' parameter for GET requests to views.
* Allow wildcards in vhosts definitions.
* More granular ETag support for views.
* More flexible URL rewriter.
* Added support for recognizing "Q values" and media parameters in
HTTP Accept headers.
* Validate doc ids that come from a PUT to a URL.
Externals:
* Added OS Process module to manage daemons outside of CouchDB.
* Added HTTP Proxy handler for more scalable externals.
Replicator:
* Added '_replicator' database to manage replications.
* Fixed issues when an endpoint is a remote database accessible via SSL.
* Added support for continuous by-doc-IDs replication.
* Fix issue where revision info was omitted when replicating attachments.
* Integrity of attachment replication is now verified by MD5.
Storage System:
* Multiple micro-optimizations when reading data.
View Server:
* Added CommonJS support to map functions.
* Added 'stale=update_after' query option that triggers a view update after
returning a 'stale=ok' response.
* Warn about empty result caused by 'startkey' and 'endkey' limiting.
* Built-in reduce function '_sum' now accepts lists of integers as input.
* Added view query aliases start_key, end_key, start_key_doc_id and
end_key_doc_id.
Futon:
* Added a "change password"-feature to Futon.
URL Rewriter & Vhosts:
* Fix for variable substituion
Apache CouchDB is a distributed, fault-tolerant and schema-free document-
oriented database accessible via a RESTful HTTP/JSON API. Among other
features, it provides robust, incremental replication with bi-directional
conflict detection and resolution, and is queryable and indexable using
a table-oriented view engine with JavaScript acting as the default view
definition language.
CouchDB is written in Erlang, but can be easily accessed from any
environment that provides means to make HTTP requests. There are
a multitude of third-party client libraries that make this even easier
for a variety of programming languages and environments.
(Based on wip/couchdb.)