Up to [cvs.NetBSD.org] / pkgsrc / databases / couchdb
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
*: recursive bump for icu 76 shlib major version bump
*: revbump for icu downgrade
*: recursive bump for icu 76.1 shlib bump
revbump after icu and protobuf updates
*: recursive bump for gnutls p11-kit option (existing installations need the bl3.mk included, but it's now only optionally included)
*: recursive bump for icu 74.1
*: bump for openssl 3
Mass-change BUILD_DEPENDS to TOOL_DEPENDS outside mk/. Almost all uses, if not all of them, are wrong, according to the semantics of BUILD_DEPENDS (packages built for target available for use _by_ tools at build-time) and TOOL_DEPEPNDS (packages built for host available for use _as_ tools at build-time). No change to BUILD_DEPENDS as used correctly inside buildlink3. As proposed on tech-pkg: https://mail-index.netbsd.org/tech-pkg/2023/06/03/msg027632.html
revbump after textproc/icu update
revbump after lang/relang fix.
couchdb: remove unrecognized configure argument to fix WARNING: Unknown option '--with-curl', ignoring shift: can't shift that many
couchdb: Update to 3.2.2. Changes since 2.3.1 are too numerous to list here, please see the following URLs for the full changelogs: https://docs.couchdb.org/en/latest/whatsnew/3.0.html https://docs.couchdb.org/en/latest/whatsnew/3.1.html https://docs.couchdb.org/en/latest/whatsnew/3.2.html
massive revision bump after textproc/icu update
*: bump PKGREVISION for libunistring shlib major bump
couchdb: no need to loop, pointed out by jperkin
couchdb: Disable all binary checks on pre-build erlang that's included for some reason
revbump for textproc/icu update
revbump for icu and libffi
revbump for boost-libs
revbump for boost-libs
revbump for textproc/icu
couchdb: Build against lang/erlang21. This version of couchdb, as well as the current version of couchdb 3.x, is incompatible with OTP 23. While here fix hardcoded paths in patch-aa, making it clear that this package can't be all that popular ;-) Bump PKGREVISION for good measure even though this package previously could not build, in case someone still has a version from before lang/erlang was bumped lying around.
*: Recursive revbump from textproc/icu-68.1
Revbump for icu
revbump after updating security/nettle
revbump after boost update
databases/couchdb: clean up SUBST_FILES These files contain none of the listed placeholders.
Recursive revision bump after textproc/icu update
*: recursive bump for libffi
all: migrate homepages from http to https pkglint -r --network --only "migrate" As a side-effect of migrating the homepages, pkglint also fixed a few indentations in unrelated lines. These and the new homepages have been checked manually.
*: Recursive revision bump for openssl 1.1.1.
*: Recursive revbump from devel/boost-libs
databases: align variable assignments pkglint -Wall -F --only aligned -r No manual corrections.
couchdb: Fix variable expansion in couchdb.in. Should help fix joyent/pkgsrc#229, bump PKGREVISION.
couchdb: Upgrade to 2.3.1. Now works with current Erlang. Summary of changes between 2.1.x and 2.3.x are listed below. For a more readable version please see the following URLs: http://docs.couchdb.org/en/latest/whatsnew/2.3.html http://docs.couchdb.org/en/latest/whatsnew/2.2.html http://docs.couchdb.org/en/latest/whatsnew/2.1.html 2.3.x Branch Upgrade Notes #1602: To improve security, there have been major changes in the configuration of query servers, SSL support, and HTTP global handlers: Query servers are NO LONGER DEFINED in the .ini files, and can no longer be altered at run-time. The JavaScript and CoffeeScript query servers continue to be enabled by default. Setup differences have been moved from default.ini to the couchdb and couchdb.cmd start scripts respectively. Additional query servers can now be configured using environment variables: export COUCHDB_QUERY_SERVER_PYTHON="/path/to/python/query/server.py with args" couchdb where the last segment in the environment variable (_PYTHON) matches the usual lowercase(!) query language in the design doc language field (here, python.) Multiple query servers can be configured by using more environment variables. You can also override the default servers if you need to set command- line options (such as couchjs stack size): export COUCHDB_QUERY_SERVER_JAVASCRIPT="/path/to/couchjs /path/to/main.js -S <STACKSIZE>" couchdb The mango query server continues to be enabled by default. The Erlang query server continues to be disabled by default. This change adds a [native_query_servers] enable_erlang_query_server = BOOL setting (defaults to false) to enable the Erlang query server. If the legacy configuration for enabling the query server is detected, that is counted as a true setting as well, so existing configurations continue to work just fine. SSL Support Enabling SSL support in the ini file is now easier: [ssl] enable = true If the legacy httpsd configuration is found in your ini file, this will still enable SSL support, so existing configurations do not need to be changed. HTTP global handlers These are no longer defined in the default.ini file, but have been moved to the couch.app context. If you need to customize your handlers, you can modify the app context using a couchdb.config file as usual. #1602: Also to improve security, the deprecated os_daemons and couch_httpd_proxy functionality has been completely removed ahead of the planned CouchDB 3.0 release. We recommend the use of OS-level daemons such as runit, sysvinit, systemd, upstart, etc. to launch and maintain OS daemons instead, and the use of a reverse proxy server in front of CouchDB (such as haproxy) to proxy access to other services or domains alongside CouchDB. #1543: The node-local (default port 5986) /_restart endpoint has been replaced by the clustered (default port 5984) endpoint /_node/$node/_restart and /_node/_local/_restart endpoints. The node-local endpoint has been removed. #1764: All python scripts shipped with CouchDB, including couchup and the dev/run development cluster script, now specify and require Python 3.x. #1396: CouchDB is now compatible with Erlang 21.x. #1680: The embedded version of rebar used to build CouchDB has been updated to the last version of rebar2 available. This assists in building on non-x86 platforms. #1857: Refuse building with known bad versions of Erlang. 2.2.x Branch Upgrade Notes The minimum supported version of Erlang is now 17, not R16B03. Support for Erlang 21 is still ongoing and will be provided in a future release. The CouchDB replication client can now use the /_session endpoint when authenticating against remote CouchDB instances, improving performance since re-authorization does not have to be performed with every request. Because of this performance improvement, it is recommended to increase the PBKDF2 work factor beyond the default 10 to a modern default such as 10000. This is done via the local ini file setting [couch_httpd_auth] iterations = 10000. Do not do this if an older version of CouchDB is replicating TO this instance or cluster regularly, since CouchDB < 2.2.0 must perform authentication on every request and replication performance will suffer. A future version will make this increased number of iterations a default. #820, #1032: Multiple queries can now be made at the POST /{db}/_all_docs/queries, POST /{db}/_design_docs/queries and POST /{db}/_local_docs/queries endpoints. Also, a new endpoint POST /{db}/_design/{ddoc}/_view/{view}/queries has been introduced to replace the ?queries parameter formerly provided for making multiple queries to a view. The old ?queries parameter is now deprecated and will be removed in a future release of CouchDB. The maximum http request limit, which had been lowered in 2.1.0, has been re-raised to a 4GB limit for now. (#1446). Ongoing discussion about the path forward for future releases is available in #1200 and #1253. #1118: The least recently used (LRU) cache of databases is now only updated on database write, not read. This has lead to significant performance enhancements on very busy clusters. To restore the previous behaviour, your local ini file can contain the block [couchdb] update_lru_on_read = true. #1153: The CouchDB replicator can now make use of the /_session endpoint rather than relying entirely on HTTP basic authentication headers. This can greatly improve replication performance. We encourage you to upgrade any nodes or clusters that regularly act as replication clients to use this new feature, which is enabled by default (#1462). #1283: The [couchdb] enable_database_recovery feature, which only soft-deletes databases in response to a DELETE /{db} call, is now documented in default.ini. #1330: CouchDB externals and OS daemons are now officially deprecated and no longer documented. Support for these features will be completely removed in a future release of CouchDB (probably 3.0.0). #1436: CouchDB proxy authentication now uses a proper chttpd_auth module, simplifying configuration in local ini files. While this is not a backward- compatible breaking change, it is best to update your local ini files to reference the new {chttpd_auth, proxy_authentication_handler} handler rather than the couch_httpd_auth version, as couch_httpd is in the process of being deprecated completely. #1476, #1477: The obsolete update_notification feature, which was replaced by /{db}/_changes feeds c. CouchDB 1.2, has been completely removed. This feature never worked in 2.0 for databases, only for shards, making it effectively useless.
Recursive revbump from boost-1.71.0
*: recursive bump for nettle 3.5.1
Recursive revbump from boost-1.70.0
Recursive revbump from textproc/icu
couchdb: add test target to Makefile
*: update email for fhajny
revbump for boost 1.69.0
revbump after updating textproc/icu
revbump after boost-libs update
Recursive revbump from textproc/icu-62.1
revbump for boost-libs update
revbump after icu update
Revbump after boost update
Revbump after textproc/icu update
Update databases/couchdb to 2.1.1. couchdb 2.1.1 - CouchDB now supports compilation and running under Erlang/OTP 20.x - The couch_peruser functionality is now really fixed - The cookie domain for AuthSession cookies, used in a proxy authentication configuration, can now be customized via the ini file - It is now possible to modify shard maps for system databases - Due to an Erlang bug (ERL-343), invalid paths can be returned if volumes are mounted containing whitespace in their name (fixed) - The current node's local interface can now be accessed at /_node/_local/{endpoint} as well as at /_node/<nodename>@<hostname>/{endpoint}.- The Dockerfile in the source repository has been retired - Fauxton now uses a version of React with a BSD license. - CouchDB now no longer decompresses documents just to determine their uncompressed size - The design document cache (ddoc_cache) has been rewritten to improve performance - Mango now supports partial indexes - Mango queries can now be paginated - Mango _find accepts an execution_stats parameter - Mango now requires that all of the fields in a candidate index must exist in a query's selector - Other minor improvements. couchdb 2.1.0 - The Mango _find endpoint supports a new combination operator, $allMatch. - New scheduling replicator. - Other minor improvements. See changelog for the 2.1.x branch for more: http://docs.couchdb.org/en/latest/whatsnew/2.1.html
revbump for requiring ICU 59.x
Revbump for boost update
Recursive revbump from boost update
Revbump after icu update
Revbump after boost update
Recursive revbump from textproc/icu 58.1
Update databases/couchdb to 2.0.0. - The build system embeds the Erlang VM into the package, which means that the PLIST may differ across build systems. Hence why we use a semi-dynamic PLIST here. - That also means that lang/erlang is now a build dependency only. - Include a couch-epmd service for the Erlang Port Mapper Daemon using the embedded binary. - Basic RCD script added. Upstream changes since 1.6.x: - Native clustering is now supported. Rather than use CouchDB replication between multiple, distinct CouchDB servers, configure a cluster of CouchDB nodes. - Futon replaced by brand-new, completely re-engineered Fauxton interface. URL remains the same. - The new Mango Query Server provides a simple JSON-based way to perform CouchDB queries without JavaScript or MapReduce. - Mango selectors can be used in _changes feeds instead of JavaScript MapReduce filters. Mango has been tested to be up to an order of magnitude (10x) faster than JavaScript in this application. - Rewrite rules for URLs can be performed using JavaScript functions. - Multiple queries can be made of a view with a single HTTP request. - Views can be queried with sorting turned off ( sorted=false) for a performance boost. - The global changes feed has been enhanced. It is now resumable and persistent. - New endpoints added (documentation forthcoming): - /_membership shows all nodes in a cluster - /_bulk_get speeds up the replication protocol over low-latency connections - /_node/ api to access individual nodes' configuration and compaction features - /_cluster_setup api to set up a cluster from scratch. - /_up api to signal health of a node to a load-balancer - /db/_local_docs and /db/_design_docs (similar to /db/_all_docs) - "Backend" interface on port 5986 used for specific cluster admin tasks. Of interest are the _nodes and _dbs databases visible only through this interface. - Support added for Erlang/OTP 17.x, 18.x and 19 - New streamlined build system written for Unix-like systems and Microsoft Windows Upgrade Notes - The update sequences returned by the /db/_changes feed are no longer integers. They can be any JSON value. Applications should treat them as opaque values and return them to CouchDB as-is. - Temporary views are no longer supported. - It is possible to have multiple replicator databases. replicator/db config option has been removed. Instead _replicator and any database names ending with the /_replicator suffix will be recognized as replicator databases by the system. - Note that the semantics of some API calls have changed due to the introduction of the clustering feature. Specifically, make note of the difference between receiving a 201 and a 202 when storing a document. - all_or_nothing is no longer supported by the bulk_docs API See full release notes: http://docs.couchdb.org/en/latest/whatsnew/2.0.html
Revbump post boost update
Bump PKGREVISION for perl-5.24.0 for everything mentioning perl.
Recursive revbump from textproc/icu 57.1
Bump PKGREVISION for security/openssl ABI bump.
Recursive revbump from textproc/icu
Recursive revbump from databases/unixodbc.
Revbump after updating textproc/icu
Revbump after updating libwebp and icu
Update couchdb to 1.6.1. Changes: - Hash plaintext admin passwords stored in local.ini on startup. - Filter out local admin users before updating password hash in _users db.
Update couchdb to 1.6.0. - COUCHDB-2200: support Erlang/OTP 17.0 #35e16032 - Fauxton: many improvements in our experimental new user interface, including switching the code editor from CodeMirror to Ace as well as better support for various browsers. - Add the max_count option (UUIDs Configuration) to allow rate-limiting the amount of UUIDs that can be requested from the /_uuids handler in a single request (CVE 2014-2668). - COUCHDB-1986: increase socket buffer size to improve replication speed for large documents and attachments, and fix tests on BSD-like systems. - COUCHDB-1953: improve performance of multipart/related requests. - COUCHDB-2221: verify that authentication-related configuration settings are well-formed. - COUCHDB-1922: fix CORS exposed headers. - Rename proxy_authentification_handler to proxy_authentication_handler. - COUCHDB-1795: ensure the startup script clears the pid file on termination. - COUCHDB-1962: replication can now be performed without having write access to the source database, the replication checkpoint interval is now configurable. - COUCHDB-2025: add support for SOCKS5 proxies for replication. - COUCHDB-1930: redirect to the correct page after submitting a new document with a different ID than the one suggested by Futon. - COUCHDB-1923: add support for attachments and att_encoding_info options (formerly only available on the documents API) to the view API. - COUCHDB-1647: for failed replications originating from a document in the _replicator database, store the failure reason in the document. - A number of improvements for the documentation.
Update couchdb to 1.5.1. Changes since 1.5.0: - Add the max_count option (UUIDs Configuration) to allow rate-limiting the amount of UUIDs that can be requested from the /_uuids handler in a single request.
recursive bump from icu shlib major bump.
Import initial SMF support for individual packages.
Recursive PKGREVISION bump for OpenSSL API version bump.
Update couchdb to 1.5.0. Changes since 1.4.0: - COUCHDB-1781: The official documentation has been overhauled. - New administration UI, included as an experimental preview. - COUCHDB-1888: Fixed an issue where admin users would be restricted by the public_fields feature. - Fixed an issue with the JavaScript CLI test runner. - COUCHDB-1867: An experimental plugin feature has been added. - COUCHDB-1894: An experimental Node.js-based query server runtime added. - COUCHDB-1901: Better retry mechanism for transferring attachments during replication.
Revbump after updating textproc/icu
Update couchdb to 1.4.0. CouchDB 1.4.0 * We now support Erlang/OTP R16B and R16B01; the minimum required version is R14B. * User document role values must now be strings. Other types of values will be refused when saving the user document. * COUCHDB-1684: Support for server-wide changes feed reporting on creation, updates and deletion of databases. * COUCHDB-1139: it's possible to apply list functions to _all_docs view. * Automatic loading of CouchDB plugins. * COUCHDB-1634: Reduce PBKDF2 work factor. * Allow storing pre-hashed admin passwords via _config API. * COUCHDB-1772: Prevent invalid JSON output when using all_or_nothing _bulk_docs API. * Add a configurable whitelist of user document properties. * COUCHDB-1852: Support Last-Event-ID header in EventSource changes feeds. * Much improved documentation, including an expanded description of validate_doc_update functions and a description of how CouchDB handles JSON number values. * COUCHDB-1632: Ignore epilogues in multipart/related MIME attachments. * Split up replicator_db tests into multiple independent tests. CouchDB 1.3.1 * Tolerate missing source and target fields in _replicator docs (COUCHDB-1788). * Don't log about missing .compact files. * Fix bug in WARN level logging from 1.3.0 (COUCHDB-1794). * Fix the -S option to couchjs to increase memory limits (COUCHDB-1792). * Improve documentation: better structure, improve language, less duplication. * Improvements to test suite and VPATH build system.
Bump all packages for perl-5.18, that a) refer 'perl' in their Makefile, or b) have a directory name of p5-*, or c) have any dependency on any p5-* package Like last time, where this caused no complaints.
Massive revbump after updating graphics/ilmbase, graphics/openexr, textproc/icu.
Update databases/couchdb to 1.3.0. Changes since 1.2.1: Version 1.3.0 ------------- HTTP Interface: * No longer rewrites the X-CouchDB-Requested-Path during recursive calls to the rewriter. * Limit recursion depth in the URL rewriter. Defaults to a maximum of 100 invocations but is configurable. * Fix _session for IE7. * Added Server-Sent Events protocol to db changes API. See http://www.w3.org/TR/eventsource/ for details. * Make password hashing synchronous when using the /_config/admins API. * Include user name in show/list ETags. * Experimental support for Cross-Origin Resource Sharing (CORS). See http://www.w3.org/TR/cors/ for details. Replicator: * The replicator will use a new server-wide UUID in checkpoint IDs to improve the chances of an efficient resume. Storage System: * Fixed unnecessary conflict when deleting and creating a document in the same batch. View Server: * Additional response headers may be varied prior to send(). * GetRow() is now side-effect free. Futon: * Disabled the link to the Futon test suite. These tests were causing problems when run from a browser, and are now available via the CLI instead. * Added view request duration to Futon. * Disable buttons for actions that the user doesn't have permissions to. Security: * Passwords are now hashed using the PBKDF2 algorithm with a configurable work factor. Test Suite: * Moved the JS test suite to the CLI. * Improved tracebacks printed by the JS CLI tests. * Improved the reliability of a number of tests. UUID Algorithms: * Added the utc_id algorithm. URL Rewriter & Vhosts: * Database name is encoded during rewriting (allowing embedded /'s, etc). * Reset rewrite counter on new request, avoiding unnecessary request failures due to bogus rewrite limit reports. Build System: * C/C++ compiler detection has been improved. * Autoconf v2.63 is now required if building from Git checkout directly. See DEVELOPERS file for more details. * Fixed issue in couchdb script where stopped status returns before process exits. Version 1.2.2 ------------- HTTP Interface: * Reset rewrite counter on new request, avoiding unnecessary request failures due to bogus rewrite limit reports. Build System: * Fixed issue in couchdb script where stopped status returns before process exits.
Update couchdb to 1.2.1. Changes in 1.2.1: * Fixed CVE-2012-5641: Apache CouchDB Information disclosure via unescaped backslashes in URLs on Windows * Fixed CVE-2012-5649: Apache CouchDB JSONP arbitrary code execution with Adobe Flash * Fixed CVE-2012-5650: Apache CouchDB DOM based Cross-Site Scripting via Futon UI * Fix various bugs in the URL rewriter when recursion is involved. * Fix couchdb start script. * Futon: Disable buttons that aren't available for the logged-in user. * Fix potential replication timeouts. * Change use of signals to avoid broken view groups.
PKGREVISION bumps for the security/openssl 1.0.1d update.
Revbump after graphics/jpeg and textproc/icu
recursive bump from cyrus-sasl libsasl2 shlib major bump.
Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days.
Update databases/couchdb to 1.2.0. 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.
Recursive bump from icu shlib major bumped to 49.
Recursive PKGREVISION bump for xulrunner, nss, and nspr.
Update couchdb to 1.1.1. 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.
Updated databases/couchdb to 1.1.0. 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
Comment previous.
Work around broken build caused by libtool abuse: it uses automake's INSTALL_PROGRAM on a script, which tries to strip the script and chokes. So substitute the -s out.
recursive bump from textproc/icu shlib major bump.
recursive bump from gettext-lib shlib bump.
Bump PKGREVISION from icu shlib major bump.
Import couchdb-1.0.1 as databases/couchdb. 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.)
Initial revision