/AvanceDB

An in-memory database based on the CouchDB REST API and containing the CouchDB Futon and Fauxton web sites

Primary LanguageC++GNU Affero General Public License v3.0AGPL-3.0

Build Status Coverage Status License Twitter URL Join the chat at https://gitter.im/RipcordSoftware/AvanceDB

AvanceDB

An in-memory database implementing a large subset of the CouchDB REST API. AvanceDB has blistering fast document lookup and map/reduce performance. If you are currently using CouchDB and struggle with view build times then AvanceDB should be a seamless replacement for your view workload.

We aim to support the following CouchDB features:

  • Futon and Fauxton
  • JavaScript Map/Reduce
  • Replication
  • Apache Lucene and ElasticSearch integration
  • Compatibility with common CouchDB clients like Cradle, Nano and others
  • Compatibility with PouchDB

AvanceDB is not designed to replace CouchDB for document storage. We have permanent document store functionality on the product roadmap but we are unlikely to realize this feature for quite a while.

The core is written in C++ 11 with Boost and map/reduce executed by an embedded SpiderMonkey JSAPI instance. We chose C++ because it is very fast and gives control over memory allocations that simply isn't available with managed languages like Java and C#.

AvanceDB will run on Linux on a humble Raspberry Pi 2 or an enterprise server. Via the magic of Brew you can spin up an instance of AvanceDB on OSX too. If you are running Windows you are out of luck, at least for the moment.

Build Status

OS Architecture Status
Debian 8.6 i386 debian-8.6-i386
Debian 8.6 amd64 debian-8.6-amd64
Ubuntu 14.04 amd64 ubutu-14.04-amd64
Ubuntu 16.04 amd64 ubuntu-16.04-amd64
CentOS 6.8 amd64 centos-6.8-amd64
CentOS 7.3 amd64 centos-7.3-amd64
Fedora 25 amd64 fedora-25-amd64
FreeBSD 11 amd64 freebsd-11-amd64

Installing

You can run AvanceDB under Docker on Linux or Mac or Homebrew on Mac.

We plan to release RPM and DEB packages for CentOS/RHEL and Debian/Ubuntu at some point in the future.

Docker

Install Docker if you don't already have it installed. Make sure it is running properly by spinning up the hello-world container, then you are go:

docker run -d -p 5994:5994 ripcordsoftware/avancedb

Fire up your browser and navigate to http://localhost:5994/_utils and you should see the main Futon window.

Homebrew

Once you have brew installed you can install AvanceDB with:

brew install autoconf@2.13 && \
brew install autoconf && \
brew install ripcordsoftware/packages/avancedb

To run AvanceDB as a daemon under launchd execute: sudo brew services start ripcordsoftware/packages/avancedb.

Building

Check out our Wiki for information about building AvanceDB on your platform.

API

AvanceDB is under active development, you can check out the current API support status here.

Contributing

C++

If you are a C++ 11 ace with interest in NoSQL and CouchDB specifically then we'd love any contributions you have. Chat to us on Gitter if you think you can help us out.

Unit Tests

We aim for all major CouchDB clients like Cradle, Nano, CouchDB-Python to operate with AvanceDB. We need unit tests for these platforms, so if you have the language skills and the time and want to contribute then we'd love to hear from you. We hang around on Gitter all the time, come over for a chat.