-
Notifications
You must be signed in to change notification settings - Fork 9
Home
Rcouch is an alternative distribution of Apache CouchDB based for now on the 1.3 release. The goal of Rcouch is to provides a simple way to customize CouchDB to your needs and easily include it in your own architecture. Today you can embed couchdb in your Erlang Application or add your own extensions to it and deploy a static release on multiple platforms.
Rcouch supports the following platorms:
- Linux x86 & x86_64, armv5, armv7a, armv8
- Freebsd i386/amd64, OpenBSD i386/amd64 (netbsd not tested)
- Solaris
- MacOSX 10.7 and sup
Coming support:
- Windows
- Android (ndk8 and sup), iOS 7
Rcouch works with the R15x and R16x versions of Erlang.
Installation is pretty simple. Just run the command line:
$ make
$ make rel
and it will generate an rcouch folder in rel/rcouch. This release is fully relocatable, so you can put it where you want on your system.
To create package for your system run make package . For now we build packages for OSX, Debian, Redhat & Solaris.
More info on the Installation page.
Main changes from Apache CouchDB are:
-
Refactoring of the codebase with a new release system based on Erlang reltools and rebar, a separations of the applications allowing more custumisations and an improved statibiliy of CouchDB (better supervision). With this refactoring A release can be fully relocatable and is statically linked.
-
View changes - Rcouch offers you the possibility to get incremental view changes (ie using the
changes
API over a view index. View changes can be filtered using a javascript function or using the view parameters (you can get view changes for a key or a range). -
View-based replication - You can incrementally replicate your documents using a view to filter them. This replication is based on the view changes
-
Validate documents on read - Validate if the document can be read by the current user.
-
Write-only databases - Only admins and some readers are able to read a database.
-
Improved logging - new logging system using Lager with more granularity in logs
-
More stats - more statistics in rcouch
-
Some Optimisations and internal changes in the source code. This changes has been added upon the time to fix issues or optimize some processing based on the user and customers feedback.
-
Custom extensions - It is easy to add custom extensions to your build using the rcouch system. Extensions built-in for rcouch are _random_docs and _db_updates. Some others extensions are available in the refuge projects.