Couchbase C Release Notes and Archives

    +
    Release notes, installation instructions, and download archive for the Couchbase C Client, libcouchbase.

    These pages cover the 3.x versions of the Couchbase C SDK. For release notes, download links, and installation methods for 2.10 and earlier releases of the Couchbase C Client, please see the 2.x C Release Notes & Download Archive.

    Platform support and installation

    The Couchbase C SDK can be installed via apt or yum repositories on GNU/Linux; homebrew on Mac OS X; and binary archives for Microsoft Windows. It may also be built from source on any of the platforms mentioned above, and more.

    Installing on GNU/Linux

    The various Linux distributions contain the following packages:

    • libcouchbase3: The core library package.

    • libcouchbase-dev (or libcouchbase-devel): The development package, required if building SDKs which depend on the C SDK.

    • libcouchbase3-tools: The command line utilities (cbc and others).

    • libcouchbase3-libevent: Optional but recommended component for I/O performance. Can also be used to integrate with libevent (see Asynchronous Programming).

    • libcouchbase3-libev: Optional, for use with applications that make use of event loop integration with libev (see Asynchronous Programming). To install the C SDK from a static binary package or by manually configuring the repositories, you can use the following procedures.

    Configuring yum repositories (CentOS, Redhat)

    This section assumes you know how to add an external yum repository and Linux quick start explains the steps it will perform on your distribution. To configure the repository:

    1. Find the appropriate repository location for your distribution in the following table.

    Version

    Architecture

    Repository

    Amazon Linux 2

    64-bit

    https://packages.couchbase.com/clients/c/repos/rpm/amzn2/x86_64

    Enterprise Linux 8

    64-bit

    https://packages.couchbase.com/clients/c/repos/rpm/el8/x86_64

    Enterprise Linux 7

    64-bit

    https://packages.couchbase.com/clients/c/repos/rpm/el7/x86_64

    1. Create a couchbase.repo file in your /etc/yum.repos.d directory. It should look similar to the following:

    [couchbase]
    enabled = 1
    name = libcouchbase package for centos8 x86_64
    baseurl = https://packages.couchbase.com/clients/c/repos/rpm/el8/x86_64
    gpgcheck = 1
    gpgkey = https://packages.couchbase.com/clients/c/repos/rpm/couchbase.key

    Configuring APT repositories (Debian, Ubuntu)

    This section assumes some knowledge of apt and Linux quick start explains the steps it will perform on your distribution. To configure the repository:

    1. Download the Couchbase GPG key from https://packages.couchbase.com/clients/c/repos/deb/couchbase.key

    2. Add the key to the list of trusted package keys. Use the apt-key add command. For example, apt-key add couchbase.key.

    3. Create a couchbase.list file in /etc/apt/sources.list.d. The file should contain the repository for your distribution. Repositories are available for the following distributions:

    Distribution

    Repository Entry

    Ubuntu 16.04 ("xenial")

    deb https://packages.couchbase.com/clients/c/repos/deb/ubuntu1604 xenial xenial/main

    Ubuntu 18.04 ("bionic")

    deb https://packages.couchbase.com/clients/c/repos/deb/ubuntu1804 bionic bionic/main

    Ubuntu 20.04 ("focal")

    deb https://packages.couchbase.com/clients/c/repos/deb/ubuntu2004 focal focal/main

    Debian 9 ("stretch")

    deb https://packages.couchbase.com/clients/c/repos/deb/debian9 stretch stretch/main

    Debian 10 ("buster")

    deb https://packages.couchbase.com/clients/c/repos/deb/debian10 buster buster/main

    Note that only Ubuntu LTS (long term support) releases are supported. You may try to use an LTS repository for a non-LTS version, but success is not guaranteed.

    Now that you have the repository configured, refresh the cache then check to see that you have been successful:

    $ sudo apt update
    $ sudo apt search libcouchbase

    You should see something like:

    libcouchbase-dbg - library for the Couchbase protocol, debug symbols
    libcouchbase-dev - library for the Couchbase protocol, development files
    libcouchbase3 - library for the Couchbase protocol, core files
    libcouchbase3-libev - library for the Couchbase protocol (libev backend)
    libcouchbase3-libevent - library for the Couchbase protocol (libevent backend)
    libcouchbase3-tools - library for the Couchbase protocol

    Now, install libcouchbase3, and any other packages that you need for development:

    $ sudo apt install libcouchbase3 libcouchbase-dev libcouchbase3-tools libcouchbase-dbg libcouchbase3-libev libcouchbase3-libevent

    For CentOS and Red Hat, the equivalent commands are:

    $ sudo yum check-update
    $ sudo yum search libcouchbase
    $ sudo yum install libcouchbase3 libcouchbase-devel libcouchbase3-tools

    Installing binary packages without a repository

    You can install standalone packages by downloading a tarball containing the necessary binary packages for your platform.

    Installing RPMs

    The following commands show steps to execute on CentOS 8 box, see table below for other RPM-based distributions.

    $ curl -O https://packages.couchbase.com/clients/c/libcouchbase-3.2.0_centos8_x86_64.tar
    $ tar xf libcouchbase-3.2.0_centos8_x86_64.tar
    $ cd libcouchbase-3.2.0_centos8_x86_64
    $ sudo yum install -y libcouchbase3{-tools,-libevent,}-3.2.0*.rpm libcouchbase-devel-*.rpm
    > ...
    > Installed:
    >   libcouchbase-devel-3.2.0-1.el8.x86_64
    >   libcouchbase3-3.2.0-1.el8.x86_64
    >   libcouchbase3-libevent-3.2.0-1.el8.x86_64
    >   libcouchbase3-tools-3.2.0-1.el8.x86_64
    > ...
    >
    > Complete!

    Installing DEBs

    The following commands show steps to execute on Debian 10 (buster) box, see table below for other DEB-based distributions.

    $ curl -O https://packages.couchbase.com/clients/c/libcouchbase-3.2.0_debian10_buster_amd64.tar
    $ tar xf libcouchbase-3.2.0_debian10_buster_amd64.tar
    $ cd libcouchbase-3.2.0_debian10_buster_amd64
    $ sudo apt install libevent-core-2.1
    $ sudo dpkg -i libcouchbase3{-tools,-libevent,}_3.2.0*.deb libcouchbase-dev*.deb
    > Selecting previously unselected package libcouchbase3-tools.
    > (Reading database ... 7177 files and directories currently installed.)
    > Preparing to unpack libcouchbase3-tools_3.2.0-1_amd64.deb ...
    > Unpacking libcouchbase3-tools (3.2.0-1) ...
    > Selecting previously unselected package libcouchbase3-libevent:amd64.
    > Preparing to unpack libcouchbase3-libevent_3.2.0-1_amd64.deb ...
    > Unpacking libcouchbase3-libevent:amd64 (3.2.0-1) ...
    > Selecting previously unselected package libcouchbase3:amd64.
    > Preparing to unpack libcouchbase3_3.2.0-1_amd64.deb ...
    > Unpacking libcouchbase3:amd64 (3.2.0-1) ...
    > Selecting previously unselected package libcouchbase-dev:amd64.
    > Preparing to unpack libcouchbase-dev_3.2.0-1_amd64.deb ...
    > Unpacking libcouchbase-dev:amd64 (3.2.0-1) ...
    > Setting up libcouchbase3:amd64 (3.2.0-1) ...
    > Setting up libcouchbase-dev:amd64 (3.2.0-1) ...
    > Setting up libcouchbase3-libevent:amd64 (3.2.0-1) ...
    > Setting up libcouchbase3-tools (3.2.0-1) ...
    > Processing triggers for libc-bin (2.28-10) ...

    Installation from source

    You may install the library from source either by downloading a source archive, or by checking out the git repository. Follow the instructions in the archive’s README for further instructions.

    Installation on Mac OS X

    To install the library on Mac OS X, first install the de-facto package manager for OS X: homebrew. Once homebrew is configured:

    $ brew update # get list of latest packages
    $ brew install libcouchbase

    To install development files and command line tools on Mac OS, follow the instructions for installing from source.

    Windows Installation

    Windows binary packages can be found as downloads for each version listed below. Included are the header files, release and debug variants of the DLLs and import libraries, and release and debug variants of the command line tools. Note that the C SDK does not have any preferred installation path, and it is up to you to determine where to place libcouchbase.dll.

    Be sure to select the proper package for the compiler and architecture your application is using.

    If there are no binaries available for your Visual Studio version, then using a binary from any other Visual Studio version is likely to work. Most of the issues related to mixing Visual Studio binary versions involve changing and incompatible C APIs or incompatible C Runtime (CRT) objects and functions. Since the Couchbase C SDK does not expose a C API, and since it does not directly expose any CRT functionality, it should be safe for use so long as your application can link to the library at compile-time. The windows runtime linker will ensure that each binary is using the appropriate version of the Visual C Runtime (MSVCRT.DLL).

    If for some reason you cannot use any of the prebuilt Windows binaries, follow the instructions in installation from source (above) to build on Windows.

    Verifying Installed Package

    The easiest way to verify installed package is to check its version using cbc tools. It requires package libcouchbase3-tools installed on Linux systems, for Windows cbc.exe included in the zip archive. To verify the client run cbc version (cbc.exe version on Windows). Below is the output from version 3.2.0 on CentOS 8. It shows version along with git commit numbers. Then it prints default directory where IO plugins installed and enumerates the currently installed and available plugins. After that it reports whether OpenSSL linked to this particular version of libcouchbase, and displays the version number if it is accessible.

    $ cbc version
    cbc:
      Runtime: Version=3.2.0, Changeset=c712686af5825f2f05c89112e555cd09906aa727
      Headers: Version=3.2.0, Changeset=c712686af5825f2f05c89112e555cd09906aa727
      Build Timestamp: 2021-07-20 09:31:59
      Default plugin directory: /usr/lib64/libcouchbase
      IO: Default=libevent, Current=libevent, Accessible=libevent,select
      SSL Runtime: OpenSSL 1.1.1g FIPS  21 Apr 2020
      SSL Headers: OpenSSL 1.1.1g FIPS  21 Apr 2020
      Snappy: 1.1.8
      Tracing: SUPPORTED
      System: Linux-4.15.0-91-generic; x86_64
      CC: GNU 8.4.1; -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-strict-aliasing -ggdb3 -pthread
      CXX: GNU 8.4.1; -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-strict-aliasing -ggdb3 -pthread

    Version 3.2.0 (20 July 2021)

    Version 3.2.0 is the first release of the 3.2 series.

    • CCBC-1395: We no longer expose LCB_ERR_BUCKET_NOT_FOUND in operation callbacks. Instead, the operation is automatically retried until timeout.

    • CBCC-1280: Support for OpenTelemetry tracing.

        Tracing updated to allow for an external tracer that creates and finishes spans, adds tags, destroys spans.  Also,
      spans now have the notion of being the 'outer' span.  That is the span that has all the outer span tags, and is the one
      whose duration is used to determine whether or not the operation has exceeded the threshold if the
      ThresholdLoggingTracer is used.
        If you pass in a parent that is an outer span, you must call `lcbtrace_span_finish` yourself. When an operation
      begins, if there is no parent span passed in, or if there is but it isn't an 'outer' span, then the operation creates
      the outer span itself.
      See `/examples/tracing/otel_tracing.cc` for an example.
    • CCBC-1362: Support for metrics.

        When enabled, by default will output a histogram of latencies for various kv operations plus query, search, analytics
      and view queries.
        If desired, an external metrics collector can be passed in when the instance is created, which will then be called
      with latencies for each operation.  This can be used to call into an opentelemetry meter for aggregation and export.
      See `/examples/metrics/otel_metrics.cc` for an example.
    • CCBC-1421: Allow empty path for subdocument array methods.

    • CCBC-1417: Deprecate CAS usage with counter operation.

    • CCBC-1418: Map query error 13014 to LCB_ERR_AUTHENTICATION_FAILURE.

    • CCBC-1357: Allow to preserve expiration with Replace, Upsert and MutateIn operations.

    • CCBC-1384: Allow the operations to be deferred until the instance will be connected to cluster.

    • CCBC-1410: Refactor dynamic authenticator. NOTE: this API still volatile and might be changed in future.

      In order to improve UX and allow caller to implement credential caching the API for authenticator was revised:
    • instead of separate callbacks for username/password, now it uses single callback

    • in the callback, the caller can figure out the reason of credentials request using lcbauth_credentials_reason()

    • the caller can signal that it failed to retrieve credentials from external provider, and set result with lcbauth_credentials_result(). In this case the SDK will not retry the operation.

    • CCBC-1413: Skip SELECT_BUCKET packets waiting retry queue.

    • CCBC-1169: Request copy from active vbucket for get_all_replicas operation.

    • CCBC-1406: Fill in prepared statement handle on retry.

    • CCBC-1405: Remove const from command cookie.

    • CCBC-1402: Fix parsing JSON primitives as query rows.

    • Various improvements and fixes in test and build infrastructure

    Downloads

    Platform

    Architecture

    File

    Checksums

    Any

    libcouchbase-3.2.0.sha256sum

    Source Archive

    Any

    libcouchbase-3.2.0.tar.gz

    Amazon Linux 2

    x64

    libcouchbase-3.2.0_amzn2_x86_64.tar

    Enterprise Linux 7

    x64

    libcouchbase-3.2.0_centos7_x86_64.tar

    Enterprise Linux 8

    x64

    libcouchbase-3.2.0_centos8_x86_64.tar

    Ubuntu 16.04 (xenial)

    x64

    libcouchbase-3.2.0_ubuntu1604_xenial_amd64.tar

    Ubuntu 18.04 (bionic)

    x64

    libcouchbase-3.2.0_ubuntu1804_bionic_amd64.tar

    Ubuntu 20.04 (focal)

    x64

    libcouchbase-3.2.0_ubuntu2004_focal_amd64.tar

    Debian 9 (stretch)

    x64

    libcouchbase-3.2.0_debian9_stretch_amd64.tar

    Debian 10 (buster)

    x64

    libcouchbase-3.2.0_debian10_buster_amd64.tar

    Visual Studio 2015 (VC14)

    x64

    libcouchbase-3.2.0_vc14_amd64.zip

    Visual Studio 2017 (VC15)

    x64

    libcouchbase-3.2.0_vc15_amd64.zip

    Visual Studio 2019 (VC16)

    x64

    libcouchbase-3.2.0_vc16_amd64.zip

    Visual Studio 2015 TLS (VC14)

    x64

    libcouchbase-3.2.0_vc14_amd64_openssl.zip

    Visual Studio 2017 TLS (VC15)

    x64

    libcouchbase-3.2.0_vc15_amd64_openssl.zip

    Visual Studio 2019 TLS (VC16)

    x64

    libcouchbase-3.2.0_vc16_amd64_openssl.zip

    Version 3.1.3 (10 May 2021)

    Version 3.1.3 is the fourth release of the 3.1 series.

    • CCBC-1395: We no longer expose LCB_ERR_BUCKET_NOT_FOUND in operation callbacks. Instead, the operation is automatically retried until timeout.

    • CCBC-1398: Parse and use revEpoch from configuration in order to allow the server to handle special cases of failover scenarios.

    • CCBC-1399: Implement retry backoff for query requests. Instead of retrying requests immediately, use backoff period returned by retry strategy.

    • CCBC-1400: Fill collection name when retrying collection resolution to avoid misrouting requests to default collection.

    • CCBC-1397: Reset list of "used" nodes when retrying query to allow reusing endpoints.

    • CCBC-1401: Fix special error message detection for Query requests. In addition to reacting on the error codes from query service, the library also scans error messages for particular sub-strings to decide whether retry is necessary.

    • CCBC-861: Purge pipelines on lcb_destroy. In order to avoid resource leaks, the library purges all pending (or waiting) commands from the pipelines upon destruction.

    • Fix cbc-proxy tool.

    • Upgrade snappy to 1.1.8

    Downloads

    Platform

    Architecture

    File

    Checksums

    Any

    libcouchbase-3.1.3.sha256sum

    Source Archive

    Any

    libcouchbase-3.1.3.tar.gz

    Amazon Linux 2

    x64

    libcouchbase-3.1.3_amzn2_x86_64.tar

    Enterprise Linux 7

    x64

    libcouchbase-3.1.3_centos7_x86_64.tar

    Enterprise Linux 8

    x64

    libcouchbase-3.1.3_centos8_x86_64.tar

    Ubuntu 16.04 (xenial)

    x64

    libcouchbase-3.1.3_ubuntu1604_xenial_amd64.tar

    Ubuntu 18.04 (bionic)

    x64

    libcouchbase-3.1.3_ubuntu1804_bionic_amd64.tar

    Ubuntu 20.04 (focal)

    x64

    libcouchbase-3.1.3_ubuntu2004_focal_amd64.tar

    Debian 9 (stretch)

    x64

    libcouchbase-3.1.3_debian9_stretch_amd64.tar

    Debian 10 (buster)

    x64

    libcouchbase-3.1.3_debian10_buster_amd64.tar

    Visual Studio 2015 (VC14)

    x64

    libcouchbase-3.1.3_vc14_amd64.zip

    Visual Studio 2017 (VC15)

    x64

    libcouchbase-3.1.3_vc15_amd64.zip

    Visual Studio 2019 (VC16)

    x64

    libcouchbase-3.1.3_vc16_amd64.zip

    Visual Studio 2015 TLS (VC14)

    x64

    libcouchbase-3.1.3_vc14_amd64_openssl.zip

    Visual Studio 2017 TLS (VC15)

    x64

    libcouchbase-3.1.3_vc15_amd64_openssl.zip

    Visual Studio 2019 TLS (VC16)

    x64

    libcouchbase-3.1.3_vc16_amd64_openssl.zip

    Version 3.1.2 (26 April 2021)

    Version 3.1.2 is the third release of the 3.1 series.

    • CCBC-1395: We no longer expose LCB_ERR_BUCKET_NOT_FOUND in operation callbacks. Instead, the operation is automatically retried until timeout.

    • CCBC-1373: Do not send collection in the key. Sending collection specification in both key and body breaks protocol, and the server will close the socket.

    • CCBC-1396: Fix recalculaton of key length for alternative packets.

    • CCBC-1395: Parse configuration revision as int64_t.

    • MB-45759: Allow building libcouchbase with external Snappy.

    • CCBC-1330: Detect unknown collection during "populate" phase of cbc-pillowfight.

    • CCBC-1386: Remove legacy options for cbc-bucket-create.

    Downloads

    Platform

    Architecture

    File

    Checksums

    Any

    libcouchbase-3.1.2.sha256sum

    Source Archive

    Any

    libcouchbase-3.1.2.tar.gz

    Amazon Linux 2

    x64

    libcouchbase-3.1.2_amzn2_x86_64.tar

    Enterprise Linux 7

    x64

    libcouchbase-3.1.2_centos7_x86_64.tar

    Enterprise Linux 8

    x64

    libcouchbase-3.1.2_centos8_x86_64.tar

    Ubuntu 16.04 (xenial)

    x64

    libcouchbase-3.1.2_ubuntu1604_xenial_amd64.tar

    Ubuntu 18.04 (bionic)

    x64

    libcouchbase-3.1.2_ubuntu1804_bionic_amd64.tar

    Ubuntu 20.04 (focal)

    x64

    libcouchbase-3.1.2_ubuntu2004_focal_amd64.tar

    Debian 9 (stretch)

    x64

    libcouchbase-3.1.2_debian9_stretch_amd64.tar

    Debian 10 (buster)

    x64

    libcouchbase-3.1.2_debian10_buster_amd64.tar

    Visual Studio 2015 (VC14)

    x64

    libcouchbase-3.1.2_vc14_amd64.zip

    Visual Studio 2017 (VC15)

    x64

    libcouchbase-3.1.2_vc15_amd64.zip

    Visual Studio 2019 (VC16)

    x64

    libcouchbase-3.1.2_vc16_amd64.zip

    Visual Studio 2015 TLS (VC14)

    x64

    libcouchbase-3.1.2_vc14_amd64_openssl.zip

    Visual Studio 2017 TLS (VC15)

    x64

    libcouchbase-3.1.2_vc15_amd64_openssl.zip

    Visual Studio 2019 TLS (VC16)

    x64

    libcouchbase-3.1.2_vc16_amd64_openssl.zip

    Version 3.1.1 (9 April 2021)

    Version 3.1.1 is the second release of the 3.1 series.

    • CCBC-1382: Return LCB_ERR_CAS_MISMATCH for operations with with REPLACE semantics instead of LCB_ERR_DOCUMENT_EXISTS.

    • CCBC-1389: Fixed default collection parsing.

    • CCBC-1383: Fixed protocol magic for durable remove. When durability level provided, the remove command should use "alternative request" as protocol magic byte.

    • CCBC-1381: Protocol changes for PROTOCOL_BINARY_CMD_COLLECTIONS_GET_CID (0xbb). The server now expects collection specification passed as a command value during collection ID resolution.

    • CCBC-1385: Restrict cases when Query error code 12009 is converted to LCB_ERR_CAS_MISMATCH. Now it returned only in cases where concurrency problem detected by query engine. Otherwise LCB_ERR_DML_FAILURE will be used.

    • CCBC-1373: Return LCB_ERR_TIMEOUT if the library is not able to resolve collection identifier. Previously either LCB_ERR_COLLECTION_NOT_FOUND or LCB_ERR_SCOPE_NOT_FOUND might be returned.

    • CCBC-1109: When dynamic authenticator is being used, the library will retry Query on error code 13014 (datastore.couchbase.insufficient_credentials).

    • CCBC-1392: Query commands now invoke retry strategy hook to make decision about retrying.

    • CCBC-1379: Error map could be disabled now using LCB_CNTL_ENABLE_ERRMAP or in the connection string with enable_errmap=false.

    • CCBC-1269: Expose setting for N1QL grace period. This is a port of CCBC-1122. The example below will add extra 100ms to each N1QL query:

      lcb_cntl_setu32(instance, LCB_CNTL_QUERY_GRACE_PERIOD, 100000);

    Downloads

    Platform

    Architecture

    File

    Checksums

    Any

    libcouchbase-3.1.1.sha256sum

    Source Archive

    Any

    libcouchbase-3.1.1.tar.gz

    Amazon Linux 2

    x64

    libcouchbase-3.1.1_amzn2_x86_64.tar

    Enterprise Linux 7

    x64

    libcouchbase-3.1.1_centos7_x86_64.tar

    Enterprise Linux 8

    x64

    libcouchbase-3.1.1_centos8_x86_64.tar

    Ubuntu 16.04 (xenial)

    x64

    libcouchbase-3.1.1_ubuntu1604_xenial_amd64.tar

    Ubuntu 18.04 (bionic)

    x64

    libcouchbase-3.1.1_ubuntu1804_bionic_amd64.tar

    Ubuntu 20.04 (focal)

    x64

    libcouchbase-3.1.1_ubuntu2004_focal_amd64.tar

    Debian 9 (stretch)

    x64

    libcouchbase-3.1.1_debian9_stretch_amd64.tar

    Debian 10 (buster)

    x64

    libcouchbase-3.1.1_debian10_buster_amd64.tar

    Visual Studio 2015 (VC14)

    x64

    libcouchbase-3.1.1_vc14_amd64.zip

    Visual Studio 2017 (VC15)

    x64

    libcouchbase-3.1.1_vc15_amd64.zip

    Visual Studio 2019 (VC16)

    x64

    libcouchbase-3.1.1_vc16_amd64.zip

    Visual Studio 2015 TLS (VC14)

    x64

    libcouchbase-3.1.1_vc14_amd64_openssl.zip

    Visual Studio 2017 TLS (VC15)

    x64

    libcouchbase-3.1.1_vc15_amd64_openssl.zip

    Visual Studio 2019 TLS (VC16)

    x64

    libcouchbase-3.1.1_vc16_amd64_openssl.zip

    Version 3.1.0 (3 March 2021)

    Version 3.1.0 is the first release of the 3.1 series.

    • CCBC-1376: Propagate scope qualifier to prepared query statements.

    • CCBC-1283: Added analytics support for scopes.

    • CCBC-1374: Reintroduce input error classification macro.

    • CCBC-1375: Translate query errors when scope/collection missing.

    • CCBC-1366: Do not cache bucket-less configurations.

    • CCBC-1363: Allow using parent project’s hdr_histogram_static target.

    • CCBC-1361: Allow "_default._default" collection for pre-collections servers.

    • MB-42884: Correctly define FILEVERSION for libcouchbase.dll.

    • CCBC-1351: Option to render cbc-ping output as a table.

    • CCBC-1323: Return LCB_ERR_DOCUMENT_EXISTS only for insert operation.

    • CCBC-1346: Return LCB_ERR_DOCUMENT_LOCKED for locked documents.

    Downloads

    Platform

    Architecture

    File

    Checksums

    Any

    libcouchbase-3.1.0.sha256sum

    Source Archive

    Any

    libcouchbase-3.1.0.tar.gz

    Amazon Linux 2

    x64

    libcouchbase-3.1.0_amzn2_x86_64.tar

    Enterprise Linux 7

    x64

    libcouchbase-3.1.0_centos7_x86_64.tar

    Enterprise Linux 8

    x64

    libcouchbase-3.1.0_centos8_x86_64.tar

    Ubuntu 16.04 (xenial)

    x64

    libcouchbase-3.1.0_ubuntu1604_xenial_amd64.tar

    Ubuntu 18.04 (bionic)

    x64

    libcouchbase-3.1.0_ubuntu1804_bionic_amd64.tar

    Ubuntu 20.04 (focal)

    x64

    libcouchbase-3.1.0_ubuntu2004_focal_amd64.tar

    Debian 9 (stretch)

    x64

    libcouchbase-3.1.0_debian9_stretch_amd64.tar

    Debian 10 (buster)

    x64

    libcouchbase-3.1.0_debian10_buster_amd64.tar

    Visual Studio 2015 (VC14)

    x64

    libcouchbase-3.1.0_vc14_amd64.zip

    Visual Studio 2017 (VC15)

    x64

    libcouchbase-3.1.0_vc15_amd64.zip

    Visual Studio 2019 (VC16)

    x64

    libcouchbase-3.1.0_vc16_amd64.zip

    Visual Studio 2015 TLS (VC14)

    x64

    libcouchbase-3.1.0_vc14_amd64_openssl.zip

    Visual Studio 2017 TLS (VC15)

    x64

    libcouchbase-3.1.0_vc15_amd64_openssl.zip

    Visual Studio 2019 TLS (VC16)

    x64

    libcouchbase-3.1.0_vc16_amd64_openssl.zip

    Version 3.0.7 (16 December 2020)

    Version 3.0.7 is the eighth release of the 3.0 series, bringing enhancements and bugfixes over the last stable release.

    • CCBC-1350: Implemented an option for cbc-n1qlback to control prepared/adhoc switch.

    • CCBC-1345: Ensure all KV sockets select bucket on lcb_open.

    • CCBC-1348: Bucket name now included in diag report.

    • CCBC-1308: Defined FATAL and TRANSIENT classes for errors. Also defines corresponding macros for easy access LCB_ERROR_IS_TRANSIENT and LCB_ERROR_IS_FATAL.

    • CCBC-1342: Check if collections supported by server before using them. Specifying a non-default collection on an operation against servers which do not support collections will now return a FeatureNotSupported error.

    • CCBC-1334: Preserve status of KV protocol response for retry queue.

    • CCBC-1339: Do not relocate get with replica on failover. The library should not relocate replica reads when new configuration applied.

    • CCBC-1344: Consume response after retried command to avoid logging the command as "timed out".

    • CCBC-1343: Do not schedule NotMyVbucket immediately by default and use retry strategy instead.

    • CCBC-1335: Fixed next timeout computation on requesting config using operation_timeout instead of config_node_timeout.

    • CCBC-1337: Expose setting for to control default search timeout.

    • CCBC-1331: Fixed error at bootstrap callback, now it returns original error code, that caused the bootstrap failure.

    • CCBC-1333: Allow setting lcb_cmdget_locktime to zero to use server default time.

    • CCBC-1324: Defined HTTP type for Eventing management.

    • Retry operations when the node is not ready.

    • Report LCB_ERR_BUCKET_NOT_FOUND if Key/Value service is not configured.

    • Update error codes for Query. Translate code 4300 to LCB_ERR_PLANNING_FAILURE and 5000 to LCB_ERR_INTERNAL_SERVER_FAILURE by default.

    • Fix collection validation, it should pass empty string as valid collection specification element.

    • Remove verbosity and mcversions commands. These parts of API are non-standard and volatile.

    • Bundle HdrHistogram_c v0.11.2 and allow to fall back to it.

    Downloads

    Platform

    Architecture

    File

    Checksums

    Any

    libcouchbase-3.0.7.sha256sum

    Source Archive

    Any

    libcouchbase-3.0.7.tar.gz

    Amazon Linux 2

    x64

    libcouchbase-3.0.7_amzn2_x86_64.tar

    Enterprise Linux 7

    x64

    libcouchbase-3.0.7_centos7_x86_64.tar

    Enterprise Linux 8

    x64

    libcouchbase-3.0.7_centos8_x86_64.tar

    Ubuntu 16.04 (xenial)

    x64

    libcouchbase-3.0.7_ubuntu1604_xenial_amd64.tar

    Ubuntu 18.04 (bionic)

    x64

    libcouchbase-3.0.7_ubuntu1804_bionic_amd64.tar

    Ubuntu 20.04 (focal)

    x64

    libcouchbase-3.0.7_ubuntu2004_focal_amd64.tar

    Debian 9 (stretch)

    x64

    libcouchbase-3.0.7_debian9_stretch_amd64.tar

    Debian 10 (buster)

    x64

    libcouchbase-3.0.7_debian10_buster_amd64.tar

    Visual Studio 2015 (VC14)

    x64

    libcouchbase-3.0.7_vc14_amd64.zip

    Visual Studio 2017 (VC15)

    x64

    libcouchbase-3.0.7_vc15_amd64.zip

    Visual Studio 2019 (VC16)

    x64

    libcouchbase-3.0.7_vc16_amd64.zip

    Visual Studio 2015 TLS (VC14)

    x64

    libcouchbase-3.0.7_vc14_amd64_openssl.zip

    Visual Studio 2017 TLS (VC15)

    x64

    libcouchbase-3.0.7_vc15_amd64_openssl.zip

    Visual Studio 2019 TLS (VC16)

    x64

    libcouchbase-3.0.7_vc16_amd64_openssl.zip

    Version 3.0.6 (21 October 2020)

    Version 3.0.6 is the seventh release of the 3.0 series, bringing enhancements and bugfixes over the last stable release.

    • CCBC-1311: Implemented create_as_deleted subdoc feature.

    • CCBC-1263: Updated ping to report Analytics as Analytics Service instead of Query.

    • CCBC-1175: Allow to specify timeout for lcb_ping.

    • CCBC-1262: Added accessor for report_id in ping report.

    • CCBC-1176: Renamed "scope" to "namespace" in ping report (also deprecated lcb_respping_result_scope in favour to lcb_respping_result_namespace).

    • CCBC-1261: Set namespace length of service in ping report to zero if not applicable.

    • CCBC-1194: Added extra checks for socket state in lcb_diag to avoid invalid access issues.

    • CCBC-1314: Extra checks for socket state in lcb_ping to avoid invalid access issues.

    • CCBC-1316: Fixed two-step bootstrap (lcb_connect + lcb_open) for memcached bucket.

    Downloads

    Platform

    Architecture

    File

    Checksums

    Any

    libcouchbase-3.0.6.sha256sum

    Source Archive

    Any

    libcouchbase-3.0.6.tar.gz

    Amazon Linux 2

    x64

    libcouchbase-3.0.6_amzn2_x86_64.tar

    Enterprise Linux 7

    x64

    libcouchbase-3.0.6_centos7_x86_64.tar

    Enterprise Linux 8

    x64

    libcouchbase-3.0.6_centos8_x86_64.tar

    Ubuntu 16.04 (xenial)

    x64

    libcouchbase-3.0.6_ubuntu1604_xenial_amd64.tar

    Ubuntu 18.04 (bionic)

    x64

    libcouchbase-3.0.6_ubuntu1804_bionic_amd64.tar

    Ubuntu 20.04 (focal)

    x64

    libcouchbase-3.0.6_ubuntu2004_focal_amd64.tar

    Debian 9 (stretch)

    x64

    libcouchbase-3.0.6_debian9_stretch_amd64.tar

    Debian 10 (buster)

    x64

    libcouchbase-3.0.6_debian10_buster_amd64.tar

    Visual Studio 2015 (VC14)

    x64

    libcouchbase-3.0.6_vc14_amd64.zip

    Visual Studio 2017 (VC15)

    x64

    libcouchbase-3.0.6_vc15_amd64.zip

    Visual Studio 2015 TLS (VC14)

    x64

    libcouchbase-3.0.6_vc14_amd64_openssl.zip

    Visual Studio 2017 TLS (VC15)

    x64

    libcouchbase-3.0.6_vc15_amd64_openssl.zip

    Version 3.0.5 (21 September 2020)

    Version 3.0.5 is the sixth release of the 3.0 series, bringing enhancements and bugfixes over the last stable release.

    • CCBC-1307: The SDK now allows the selection of any mechanisms for SASL regardless of the network protocol being usedm although by default the SDK will try to avoid downgrading to PLAIN on non-TLS connections. Also the change allows users to specify a list of preferred mechanisms instead of only one (through the use of a comma in the value of the sasl_mech_force connection string option).

    • CCBC-1276: Addded flex (FTS) index usage to query options.

    • CCBC-1312: Fixed return values for lcb_cmdquery_scope_*.

    • CCBC-1313: Replaced std::random_shuffle with std::shuffle. fixing build of cbc-n1qlback tool.

    Downloads

    Platform

    Architecture

    File

    Checksums

    Any

    libcouchbase-3.0.5.sha256sum

    Source Archive

    Any

    libcouchbase-3.0.5.tar.gz

    Amazon Linux 2

    x64

    libcouchbase-3.0.5_amzn2_x86_64.tar

    Enterprise Linux 7

    x64

    libcouchbase-3.0.5_centos7_x86_64.tar

    Enterprise Linux 8

    x64

    libcouchbase-3.0.5_centos8_x86_64.tar

    Ubuntu 16.04 (xenial)

    x64

    libcouchbase-3.0.5_ubuntu1604_xenial_amd64.tar

    Ubuntu 18.04 (bionic)

    x64

    libcouchbase-3.0.5_ubuntu1804_bionic_amd64.tar

    Ubuntu 20.04 (focal)

    x64

    libcouchbase-3.0.5_ubuntu2004_focal_amd64.tar

    Debian 9 (stretch)

    x64

    libcouchbase-3.0.5_debian9_stretch_amd64.tar

    Debian 10 (buster)

    x64

    libcouchbase-3.0.5_debian10_buster_amd64.tar

    Visual Studio 2015 (VC14)

    x64

    libcouchbase-3.0.5_vc14_amd64.zip

    Visual Studio 2017 (VC15)

    x64

    libcouchbase-3.0.5_vc15_amd64.zip

    Visual Studio 2015 TLS (VC14)

    x64

    libcouchbase-3.0.5_vc14_amd64_openssl.zip

    Visual Studio 2017 TLS (VC15)

    x64

    libcouchbase-3.0.5_vc15_amd64_openssl.zip

    Version 3.0.4 (26 August 2020)

    Version 3.0.4 is the fifth release of the 3.0 series, bringing enhancements and bugfixes over the last stable release.

    • CCBC-1281: Implemented scope qualifier for queries.

    • CCBC-1301: Expose cmake option to help dissect TLS traffic.

    • Detect configuration change when replica indexes changed.

    Downloads

    Platform

    Architecture

    File

    Checksums

    Any

    libcouchbase-3.0.4.sha256sum

    Source Archive

    Any

    libcouchbase-3.0.4.tar.gz

    Amazon Linux 2

    x64

    libcouchbase-3.0.4_amzn2_x86_64.tar

    Enterprise Linux 7

    x64

    libcouchbase-3.0.4_centos7_x86_64.tar

    Enterprise Linux 8

    x64

    libcouchbase-3.0.4_centos8_x86_64.tar

    Ubuntu 16.04 (xenial)

    x64

    libcouchbase-3.0.4_ubuntu1604_xenial_amd64.tar

    Ubuntu 18.04 (bionic)

    x64

    libcouchbase-3.0.4_ubuntu1804_bionic_amd64.tar

    Ubuntu 20.04 (focal)

    x64

    libcouchbase-3.0.4_ubuntu2004_focal_amd64.tar

    Debian 9 (stretch)

    x64

    libcouchbase-3.0.4_debian9_stretch_amd64.tar

    Debian 10 (buster)

    x64

    libcouchbase-3.0.4_debian10_buster_amd64.tar

    Visual Studio 2015 (VC14)

    x64

    libcouchbase-3.0.4_vc14_amd64.zip

    Visual Studio 2017 (VC15)

    x64

    libcouchbase-3.0.4_vc15_amd64.zip

    Visual Studio 2015 TLS (VC14)

    x64

    libcouchbase-3.0.4_vc14_amd64_openssl.zip

    Visual Studio 2017 TLS (VC15)

    x64

    libcouchbase-3.0.4_vc15_amd64_openssl.zip

    Version 3.0.3 (27 July 2020)

    Version 3.0.3 is the fourth release of the 3.0 series, bringing enhancements and bugfixes over the last stable release.

    • Binary packages for Ubuntu 20.04 LTS (Focal Fossa)

    • CCBC-1265: Enabled out of order execution by default.

    • CCBC-1189: The SDK now validate collection and scope names early. The library will return an error if the collection name is not valid, without sending a command to the server.

    • CCBC-1278: Fixed stripping payload over TLS connection. The library might propagate zero return code from recv() even when previous calls of recv() successfully transferred bytes to SSL context. In this case we might lose these trailing bytes and just close the socket.

    • CCBC-1264: Fixed calculating key size when durability level specified.

    • CCBC-1258: Fixed port order in vbucket diff info message.

    • CCBC-1274: Fixed pointer casting in HTTP callback of cbc tool.

    • CCBC-1167: Fixed tests build on MacOS.

    • CCBC-1248: The SDK will now always request error map feature and send HELLO message to speedup bootstrap.

    • Implemented tick for IOCP plugin on Windows.

    • Improved build on Windows (fixed static build, and PDB installation).

    • Fixed collections issues for future server release.

    Downloads

    Platform

    Architecture

    File

    Checksums

    Any

    libcouchbase-3.0.3.sha256sum

    Source Archive

    Any

    libcouchbase-3.0.3.tar.gz

    Amazon Linux 2

    x64

    libcouchbase-3.0.3_amzn2_x86_64.tar

    Enterprise Linux 7

    x64

    libcouchbase-3.0.3_centos7_x86_64.tar

    Enterprise Linux 8

    x64

    libcouchbase-3.0.3_centos8_x86_64.tar

    Ubuntu 16.04 (xenial)

    x64

    libcouchbase-3.0.3_ubuntu1604_xenial_amd64.tar

    Ubuntu 18.04 (bionic)

    x64

    libcouchbase-3.0.3_ubuntu1804_bionic_amd64.tar

    Ubuntu 20.04 (focal)

    x64

    libcouchbase-3.0.3_ubuntu2004_focal_amd64.tar

    Debian 9 (stretch)

    x64

    libcouchbase-3.0.3_debian9_stretch_amd64.tar

    Debian 10 (buster)

    x64

    libcouchbase-3.0.3_debian10_buster_amd64.tar

    Visual Studio 2015 (VC14)

    x64

    libcouchbase-3.0.3_vc14_amd64.zip

    Visual Studio 2017 (VC15)

    x64

    libcouchbase-3.0.3_vc15_amd64.zip

    Visual Studio 2017 TLS (VC15)

    x64

    libcouchbase-3.0.3_vc15_amd64_openssl.zip

    Version 3.0.2 (10 June 2020)

    Version 3.0.2 is the third release of the 3.0 series, bringing enhancements and bugfixes over the last stable release.

    • CCBC-1200: LCB will now retry bootstrap on missing bucket error until timeout. Bootstrap timeout is controlled by "config_total_timeout" in connection string or LCB_CNTL_CONFIGURATION_TIMEOUT.

    • CCBC-1190: When performing an operation immediately after bucket creation, the server returns TMPFAIL and libcouchbase bubbled this up rather than restarting. Now fixed so LCB automatic retries for temporary failures from the server.

    • CCBC-1158: Reduced retrying on unknown collection to a sensible level.

    • CCBC-1254: It’s now possible to use a separate option for default timeout of Analytics queries (connection string "analytics_timeout").

    • CCBC-1178: It is now no longer possible to (illigally) set CAS for upsert and insert operations.

    • CCBC-1156: Fixed enum value for analytics type of HTTP request.

    • CCBC-1251: No longer log error when using GCCCP on pre-6.5 Couchbase Server.

    • CCBC-1234: Fixed SRV resolution to work with large record sizes.

    • CCBC-1222: Tracing thresholds for query and search fixed in connection strings: tracing_threshold_search and tracing_threshold_query.

    • CCBC-1187: lcb_respexists_is_found can no longer return true for deleted documents.

    • CCBC-1233: Updated RTO to independently specify operation_name.

    • CCBC-1205: Do not include trailing zero for endpoint length for KV context.

    • CCBC-1215: Fixed segfault in exists calls.

    • CCBC-1218: Fixed intermittent segfault in client durable store.

    • Documentation issues addressed (CCBC-1240, CCBC-1241, CCBC-1243, CCBC-1245)

    Downloads

    Platform

    Architecture

    File

    Checksums

    Any

    libcouchbase-3.0.2.sha256sum

    Source Archive

    Any

    libcouchbase-3.0.2.tar.gz

    Amazon Linux 2

    x64

    libcouchbase-3.0.2_amzn2_x86_64.tar

    Enterprise Linux 7

    x64

    libcouchbase-3.0.2_centos7_x86_64.tar

    Enterprise Linux 8

    x64

    libcouchbase-3.0.2_centos8_x86_64.tar

    Ubuntu 16.04 (xenial)

    x64

    libcouchbase-3.0.2_ubuntu1604_xenial_amd64.tar

    Ubuntu 18.04 (bionic)

    x64

    libcouchbase-3.0.2_ubuntu1804_bionic_amd64.tar

    Debian 9 (stretch)

    x64

    libcouchbase-3.0.2_debian9_stretch_amd64.tar

    Debian 10 (buster)

    x64

    libcouchbase-3.0.2_debian10_buster_amd64.tar

    Visual Studio 2015 (VC14)

    x64

    libcouchbase-3.0.2_vc14_amd64.zip

    Visual Studio 2017 (VC15)

    x64

    libcouchbase-3.0.2_vc15_amd64.zip

    Visual Studio 2017 TLS (VC15)

    x64

    libcouchbase-3.0.2_vc15_amd64_openssl.zip

    Version 3.0.1 (8 April 2020)

    Version 3.0.1 is the second release of the 3.0 series, bringing enhancements and bugfixes over the last stable release.

    Fixed Issues

    • CCBC-1188: cbc-pillowfight: fixed --collection switch.

    • CCBC-1173: Fixed exporting lcb_cmdquery_consistency_token_for_keyspace.

    • CCBC-1168: Exposed max_parallelism for query.

    • CCBC-1171: Exposed profile option for query.

    • CCBC-1170: Exposed scan_wait option for query.

    • CCBC-1159: Fixed error codes for Management API.

    • MB-37768: Fixed issue where `CMAKE_INSTALL_RPATH`was overriden, affecting cbc tools.

    • CCBC-1208: Added a fail-fast retry strategy.

    • CCBC-1209: Renamed functions of embedded http_parser to avoid name clash.

    • Removed use of deprecated function std::random_shuffle. std::random_shuffle is deprecated in C14, removed in C17. Replaced with std::shuffle.

    • Fixed several issues reported by coverity.

    Known Issues

    • Attempting to install libcouchbase via homebrew on OS X prior to June 8th, 2020 would result in libcouchbase 2.10 being installed instead of 3.0.

    Downloads

    Platform

    Architecture

    File

    Checksums

    Any

    libcouchbase-3.0.1.sha256sum

    Source Archive

    Any

    libcouchbase-3.0.1.tar.gz

    Amazon Linux 2

    x64

    libcouchbase-3.0.1_amzn2_x86_64.tar

    Enterprise Linux 7

    x64

    libcouchbase-3.0.1_centos7_x86_64.tar

    Enterprise Linux 8

    x64

    libcouchbase-3.0.1_centos8_x86_64.tar

    Ubuntu 16.04 (xenial)

    x64

    libcouchbase-3.0.1_ubuntu1604_xenial_amd64.tar

    Ubuntu 18.04 (bionic)

    x64

    libcouchbase-3.0.1_ubuntu1804_bionic_amd64.tar

    Debian 9 (stretch)

    x64

    libcouchbase-3.0.1_debian9_stretch_amd64.tar

    Debian 10 (buster)

    x64

    libcouchbase-3.0.1_debian10_buster_amd64.tar

    Visual Studio 2015 (VC14)

    x64

    libcouchbase-3.0.1_vc14_amd64.zip

    Visual Studio 2017 (VC15)

    x64

    libcouchbase-3.0.1_vc15_amd64.zip

    Visual Studio 2017 TLS (VC15)

    x64

    libcouchbase-3.0.1_vc15_amd64_openssl.zip

    Version 3.0.0 (17 January 2020)

    This is the first GA release of the third generation C SDK.

    Fixed Issues

    • CCBC-1152: Enabled SCRAM-SHA* SASL by default.

    • CCBC-1153: Renamed lcb_wait3 to lcb_wait.

    • CCBC-1147: Return LCB_SUCCESS for lcb_exists when the document is missing. lcb_respexists_is_found should be used on its response object to check the presense of the document.

    • CCBC-1152: Do not allow to use SASL PLAIN on non-TLS connections. Compiling libcouchbase with OpenSSL is strongly recommended.

    • CCBC-1032: Use operation node to resolve collection and return timeout when collection cannot be resolved

    • Added shortcut for query options to request metrics

    • Do not fallback to single subdocument API when only one specification passed to lcb_subdoc.

    • CCBC-1137: Allow to retrieve error context for HTTP response (lcb_http API).

    • CCBC-1145: Expose endpoints in error context.

    • CCBC-1146: Expose user-cookie in retry handler.

    • CCBC-1148: Added NULL checks for enhanced error info.

    • CCBC-1075: Renamed "FTS" to "SEARCH" in the APIs.

    • CCBC-1073: Renamed "N1QL" to "QUERY" in the APIs.

    • Fixed bucketless bootstrap for Server 6.0.

    • Fixed various memory leaks. Improved build, testing and packaging systems.

    Known Issues

    • Attempting to install libcouchbase via homebrew on OS X prior to June 8th, 2020 would result in libcouchbase 2.10 being installed instead of 3.0.

    Downloads

    Platform

    Architecture

    File

    Checksums

    Any

    libcouchbase-3.0.0.sha256sum

    Source Archive

    Any

    libcouchbase-3.0.0.tar.gz

    Amazon Linux 2

    x64

    libcouchbase-3.0.0_amzn2_x86_64.tar

    Enterprise Linux 7

    x64

    libcouchbase-3.0.0_centos7_x86_64.tar

    Enterprise Linux 8

    x64

    libcouchbase-3.0.0_centos8_x86_64.tar

    Ubuntu 16.04 (xenial)

    x64

    libcouchbase-3.0.0_ubuntu1604_xenial_amd64.tar

    Ubuntu 18.04 (bionic)

    x64

    libcouchbase-3.0.0_ubuntu1804_bionic_amd64.tar

    Debian 9 (stretch)

    x64

    libcouchbase-3.0.0_debian9_stretch_amd64.tar

    Debian 10 (buster)

    x64

    libcouchbase-3.0.0_debian10_buster_amd64.tar

    Visual Studio 2015 (VC14)

    x64

    libcouchbase-3.0.0_vc14_amd64.zip

    Visual Studio 2017 (VC15)

    x64

    libcouchbase-3.0.0_vc15_amd64.zip

    Visual Studio 2019 (VC16)

    x64

    libcouchbase-3.0.0_vc16_amd64.zip

    Visual Studio 2017 TLS (VC15)

    x64

    libcouchbase-3.0.0_vc15_amd64_openssl.zip

    Pre-releases

    Numerous Alpha and Beta releases were made in the run-up to the 3.0 release, and although unsupported, the release notes and download links are retained for archive purposes here.

    Older Releases

    Although no longer supported, documentation for older releases continues to be available in our docs archive.