Couchbase Open Source Project

Couchbase began as an open source project to create a database for the web era. Before there was even a company, we were open source hackers with backgrounds in database and network engineering. Since then a lot has changed: we’ve grown from a small team to a world-class engineering organization. One thing that hasn’t changed is our commitment to open source – everything we release is available under the Apache Public License.

Beyond just an open license, it’s important to us to have an open development process. Many of us got our start writing infrastructure software by joining existing open source communities, and we are keen to provide the same opportunity to other developers. This page is your roadmap to joining our community.

Active Open Source Projects

Couchbase Server

Download the code, build your source file and start hacking away.

View more

Couchbase Client SDKs

Find smart clients, community drivers, libraries, tools and connectors.

View more

Couchbase Mobile

Sync JSON documents between Couchbase Server and Couchbase Lite on iOS and Android.

View more

Couchbase Labs

Check out the interesting projects that are brewing in our labs.

View more

How you can contribute

Couchbase maintains a long list of open source projects, so you need to understand the projects before you can start contributing. We love working with outside engineers on everything from our client library SDKs to the core server. And there are more ways to contribute than writing code. Good bug reports, as well as documentation and usability feedback, matter as much as patches. Before skipping to the list of projects, please read the following sections to understand our overall process.

  • Report a bug

    Bugs for most of our projects are managed in our central tracker, with a few exceptions where bugs are tracked in another code hosting service like Github. Because there is so much activity in the bug tracker, you are encouraged to find your project in the list below, and follow the link to report or search bugs. We have a separate document about how to write a good bug report, please read it before you file new bugs.

  • Give usability feedback

    We know that a major consideration in picking a database is ease of use. In our surveys, it ranks up there with reliability and performance as a key concern. If you are a heavy user of Couchbase Server, and some workflow, UI screen, or other aspect starts to annoy you, there’s a good chance you spend more time using it than the folks who wrote that code. As a database developer, it is easy to focus so much on “hard” aspects like performance and reliability that you can sometimes miss ergonomic issues. So any kind of feedback about the usability of Couchbase is very much appreciated. (If there’s something you really like, we love to hear that too).

  • Help improve the docs

    We encourage feedback on our documentation. If you would like to provide feedback, please email our documentation team, at documentation@couchbase.com

    All comments and feedback are welcome. For example, you notice an error in the docs, feel that something is just not clear, or would like to see more documentation on a topic.

  • Get involved with the code

    There are a few things you’ve got to do before your patch will be accepted by Couchbase. On the technical side you’ll need to familiarize yourself with the build and test procedures for the code you’ll be working on. It’s also a good idea to reach out to the tech lead for that project and make sure you won’t be duplicating effort. On the administrative side, you’ll need to sign our contributor license agreement.

    Contributor License Agreement

    Before we can accept significant code patches from a new developer, we require a contributor license agreement (CLA) to be filed. CLAs are common for projects under the Apache license, and typically serve to grant control of the code to a central entity. Because our code is available under the Apache License, signing the CLA doesn’t prevent you from using your code however you like, but it does give Couchbase the ability to build and maintain a business around the technology.

    To sign the CLA, join our review site, and then browse to the agreement when you are logged in. Once your signature is on file, we can accept your patches.

Don’t forget about the Couchbase engineering team!

It takes a lot of work to get from a potential new bug fix or feature idea, to well-tested shipping code. Our engineers want to help you get there. After all, the more outside contributors we have, the greater the diversity of use cases and feature requests we can address.

Every patch goes through an extensive code review process, where one of our engineers will not only look at your change, but also run tests to verify your fix. Getting a patch into Couchbase might be a little more work than your average pull request, but we hope the process is rewarding.

For each open source project in the Couchbase umbrella, we’ve listed a primary technical contact. Before you spend all weekend hacking, we encourage you to reach out to our engineers. Perhaps someone from Couchbase is already working on a fix to the same bug, and will want to work closely with you. Or maybe another community member started some work in that area, which would be a good point of departure for your work. The best way to find out is to ask. It certainly beats working for days only to find out later that module you’ve been immersed in has just been rewritten in a different language.

Your engineering contact can also help with the technical aspects of getting a patch accepted, by showing you how to run the appropriate test suites, or adding the right person to code review, who can help you figure out that last API question or memory management issue.

Open Source Projects

Couchbase Server

The core server is made up of a variety of components. But, before you are ready to contribute, you'll need to do some work to build the server from source code. Once you have checked out and built the code, you may also want to run a quick workload to verify your build is working before you start hacking. We conduct rigorous code reviews throughout development to keep quality high and ensure programming best practices are being observed.

To report a bug visit the Couchbase Server bug tracker here. The tracker contains sub-projects for the various server components, but unless you know which component your bug belongs to, it’s typically fine to file against the umbrella project (Couchbase Server). In that case an engineer will likely move the bug to the appropriate component.

 

Couchbase Server SDKs

Couchbase maintains smart clients for the most popular programming languages, and there are a huge variety of open source projects that use Couchbase. We also list the community drivers and libraries available for each language. There is also a list of tools and connectors below.

Java / JVM
.NET
PHP
Python
Ruby
JavaScript
Other Languages

Tools

If you want to add your project to this list, email jchris@couchbase.com