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.
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.
Installing on GNU/Linux
The various Linux distributions contain the following packages:
-
libcouchbase3
: The core library package. -
libcouchbase-dev
(orlibcouchbase-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. To configure the repository:
-
Find the appropriate repository location for your distribution in the following table.
Version
Architecture
Repository
Amazon Linux 2
aarch64
https://packages.couchbase.com/clients/c/repos/rpm/amzn2/aarch64
Amazon Linux 2
x86_64
https://packages.couchbase.com/clients/c/repos/rpm/amzn2/x86_64
Enterprise Linux 8
x86_64
https://packages.couchbase.com/clients/c/repos/rpm/el8/x86_64
Enterprise Linux 7
x86_64
https://packages.couchbase.com/clients/c/repos/rpm/el7/x86_64
-
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
Now that you have the repository configured, refresh the cache then check to see that you have been successful:
$ sudo yum check-update
$ sudo yum search libcouchbase
Now, install libcouchbase3
, and any other packages that you need for development:
$ sudo yum install libcouchbase3 libcouchbase-devel libcouchbase3-tools
Configuring APT repositories (Debian, Ubuntu)
This section assumes some knowledge of apt. To configure the repository:
-
Download the Couchbase GPG key from https://packages.couchbase.com/clients/c/repos/deb/couchbase.key
-
Add the key to the list of trusted package keys. Use the
apt-key add
command. For example,apt-key add couchbase.key
. -
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") |
|
Ubuntu 18.04 ("bionic") |
|
Ubuntu 20.04 ("focal") |
|
Debian 9 ("stretch") |
|
Debian 10 ("buster") |
|
Debian 11 ("bullseye") |
|
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
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 for the current version on a CentOS 8 box. Check the Downloads table for other Redhat based systems.
$ curl -O https://packages.couchbase.com/clients/c/libcouchbase-3.2.1_centos8_x86_64.tar
$ tar xf libcouchbase-3.2.1_centos8_x86_64.tar
$ cd libcouchbase-3.2.1_centos8_x86_64
$ sudo yum install -y libcouchbase3{-tools,-libevent,}-3.2.1*.rpm libcouchbase-devel-*.rpm
> ...
> Installed:
> libcouchbase-devel-3.2.1-1.el8.x86_64
> libcouchbase3-3.2.1-1.el8.x86_64
> libcouchbase3-libevent-3.2.1-1.el8.x86_64
> libcouchbase3-tools-3.2.1-1.el8.x86_64
> ...
>
> Complete!
Installing DEBs
The following commands show steps to execute for the current version on a Debian 10 (buster) box. Check the Downloads table for the other DEB-based distributions.
$ curl -O https://packages.couchbase.com/clients/c/libcouchbase-3.2.1_debian10_buster_amd64.tar
$ tar xf libcouchbase-3.2.1_debian10_buster_amd64.tar
$ cd libcouchbase-3.2.1_debian10_buster_amd64
$ sudo apt install libevent-core-2.1
$ sudo dpkg -i libcouchbase3{-tools,-libevent,}_3.2.1*.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.1-1_amd64.deb ...
> Unpacking libcouchbase3-tools (3.2.1-1) ...
> Selecting previously unselected package libcouchbase3-libevent:amd64.
> Preparing to unpack libcouchbase3-libevent_3.2.1-1_amd64.deb ...
> Unpacking libcouchbase3-libevent:amd64 (3.2.1-1) ...
> Selecting previously unselected package libcouchbase3:amd64.
> Preparing to unpack libcouchbase3_3.2.1-1_amd64.deb ...
> Unpacking libcouchbase3:amd64 (3.2.1-1) ...
> Selecting previously unselected package libcouchbase-dev:amd64.
> Preparing to unpack libcouchbase-dev_3.2.1-1_amd64.deb ...
> Unpacking libcouchbase-dev:amd64 (3.2.1-1) ...
> Setting up libcouchbase3:amd64 (3.2.1-1) ...
> Setting up libcouchbase-dev:amd64 (3.2.1-1) ...
> Setting up libcouchbase3-libevent:amd64 (3.2.1-1) ...
> Setting up libcouchbase3-tools (3.2.1-1) ...
> Processing triggers for libc-bin (2.28-10) ...
Installation on Mac OS X
To install the latest version of the library on Mac OS X, first install the de-facto package manager for OS X: homebrew. Once homebrew is configured:
Get list of latest packages:
$ brew update
Install the latest version of libcouchbase
:
$ brew install libcouchbase
To install development files and command line tools on Mac OS, or to install an earlier version of the library, follow the instructions for installing from source.
Windows Installation
Windows binary packages can be found in the Downloads table for each supported version of libcouchbase.
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 ( |
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.4 (26 November 2021)
Version 3.2.4 is the fifth release of the 3.2 series.
-
CCBC-1522: Filter
DnsQuery
results on Windows by type: only use records withDNS_TYPE_SRV
type. -
CCBC-1521: Fixed bootstrap process when client certificate is used. We always pipeline error map request with
HELLO
request, and usually await forhello
+error_map
responses, because after that goes SASL authentication (and then optional selection of the bucket) which cannot be completely pipelined. But in case of client certificate, we might terminate bootstrap process too early if the bootstrap process does not require immediate selection of the bucket. -
CCBC-1432 Support for rate limiting error codes:
LCB_ERR_RATE_LIMITED
andLCB_ERR_QUOTA_LIMITED
. -
CCBC-1514: Do not translate unknown error with "item-only" attribute into
LCB_ERR_CAS_MISMATCH
. -
CCBC-1515: Performance optimization: replace
sstream
with stringappend()
. Only if list of IO vectors supplied for value in mutation operations.
Downloads
Platform |
Architecture |
File |
Checksums |
Any |
|
Source Archive |
Any |
|
Amazon Linux 2 |
aarch64 |
|
Amazon Linux 2 |
x86_64 |
|
Enterprise Linux 7 |
x86_64 |
|
Enterprise Linux 8 |
x86_64 |
|
Ubuntu 16.04 (xenial) |
x86_64 |
|
Ubuntu 18.04 (bionic) |
x86_64 |
|
Ubuntu 20.04 (focal) |
x86_64 |
|
Debian 9 (stretch) |
x86_64 |
|
Debian 10 (buster) |
x86_64 |
|
Debian 11 (bullseye) |
x86_64 |
|
Visual Studio 2015 (VC14) |
x86_64 |
|
Visual Studio 2017 (VC15) |
x86_64 |
|
Visual Studio 2019 (VC16) |
x86_64 |
|
Visual Studio 2015 TLS (VC14) |
x86_64 |
|
Visual Studio 2017 TLS (VC15) |
x86_64 |
|
Visual Studio 2019 TLS (VC16) |
x86_64 |
Version 3.2.3 (20 October 2021)
Version 3.2.3 is the fourth release of the 3.2 series.
-
CCBC-1484: Fixed tracing tags in accordance to RFC.
-
CCBC-1510: Fixed key length calculation for exists/get/touch/unlock.
-
CCBC-1495: Fixed payload encoding in query index management helpers. Query index management helpers now explicitly declared deperecated.
-
CCBC-1506: Duration values now accepted golang style encoding. Connection string and
lcb_cntl_string
now can parse strings with duration encoded in golang style, e.g.analytics_timeout=5s42us
. The result still converted into 32-bit value with microsecond resolution. -
Improved test coverage, stability and documentation.
Downloads
Platform |
Architecture |
File |
Checksums |
Any |
|
Source Archive |
Any |
|
Amazon Linux 2 |
aarch64 |
|
Amazon Linux 2 |
x86_64 |
|
Enterprise Linux 7 |
x86_64 |
|
Enterprise Linux 8 |
x86_64 |
|
Ubuntu 16.04 (xenial) |
x86_64 |
|
Ubuntu 18.04 (bionic) |
x86_64 |
|
Ubuntu 20.04 (focal) |
x86_64 |
|
Debian 9 (stretch) |
x86_64 |
|
Debian 10 (buster) |
x86_64 |
|
Debian 11 (bullseye) |
x86_64 |
|
Visual Studio 2015 (VC14) |
x86_64 |
|
Visual Studio 2017 (VC15) |
x86_64 |
|
Visual Studio 2019 (VC16) |
x86_64 |
|
Visual Studio 2015 TLS (VC14) |
x86_64 |
|
Visual Studio 2017 TLS (VC15) |
x86_64 |
|
Visual Studio 2019 TLS (VC16) |
x86_64 |
Version 3.2.2 (23 September 2021)
Version 3.2.2 is the third release of the 3.2 series.
-
CCBC-1485: Allow disabling tracer for connected instance.
-
CCBC-1472: Fix handling in case of invalid responses by ensuring strict JSON parsing mode for query meta.
-
CCBC-1494: Disconnect logger after
lcb_destroy
invoked to avoid double free errors for some IO backends. -
CCBC-1457: Improve error message when server enforces TLS encryption
-
CCBC-1489: Fixed get_and_touch to use the correct expiry.
-
CCBC-1487: Fixed issue with completion IO where
retryq
erased already sent packets. -
CCBC-1488: Fixed incorrect refcounting in
Connstart
, where an error state followed by cancellation caused an error. -
CCBC-1479: Initialize fields of custom tracer struct, fixing issues during destruction.
-
CCBC-1478: Fix issue where successful query returning no results triggered retry when run readonly, resulting in a timeout error.
-
CCBC-1216: Implement user impersonation API, for use-cases where SDK performs work on behalf of an application.
-
Improved test coverage and stability.
Downloads
Platform |
Architecture |
File |
Checksums |
Any |
|
Source Archive |
Any |
|
Amazon Linux 2 |
x64 |
|
Enterprise Linux 7 |
x64 |
|
Enterprise Linux 8 |
x64 |
|
Ubuntu 16.04 (xenial) |
x64 |
|
Ubuntu 18.04 (bionic) |
x64 |
|
Ubuntu 20.04 (focal) |
x64 |
|
Debian 9 (stretch) |
x64 |
|
Debian 10 (buster) |
x64 |
|
Debian 11 (bullseye) |
x64 |
|
Visual Studio 2015 (VC14) |
x64 |
|
Visual Studio 2017 (VC15) |
x64 |
|
Visual Studio 2019 (VC16) |
x64 |
|
Visual Studio 2015 TLS (VC14) |
x64 |
|
Visual Studio 2017 TLS (VC15) |
x64 |
|
Visual Studio 2019 TLS (VC16) |
x64 |
Version 3.2.1 (20 August 2021)
Version 3.2.1 is the second release of the 3.2 series.
-
CCBC-1429: Fixed positional parameters for query/analtyics:
-
Reverts behaviour
lcb_cmdquery_positional_param
andlcb_cmdanalytics_positional_param
to append single JSON-encoded value to arguments array. -
Introduces new functions —
lcb_cmdquery_positional_params
andlcb_cmdanalytics_positional_params
— that accept all positional arguments at once as JSON-encoded array. -
Document that old functions will emit compiler warning from 3.3.0 release, and will be removed later.
-
-
CCBC-1428: Clear callback upon error in
lcb_search
. -
CCBC-1454: Fixed compiler warning in
lcb_getreplica
. -
CCBC-1453: Refactored local name caching in
lcbio_cache_local_name
to simplify the code and eliminate compiler warnings. -
CCBC-1451: Fixed strdup usage, in some cases the compiler might choose
strdup
to returnint
instead ofchar *
which might lead to memory issues. -
CCBC-1448: Fixed cmake macro for examples. The macro
ADD_EXAMPLE
now correctly updates header directories for generated target. -
CCBC-1445: Always invoke callbacks for pending HTTP operations. When destroying
lcb_INSTANCE
make sure that all HTTP requests (views, query, search, analytics) will have their callbacks invoked. -
CCBC-1438: Fixed frame size for mutations with durability. Counter, Store and Subdoc mutations were sending incorrect frame size of durability encoding, which led to rejection of the command by the server.
Downloads
Platform |
Architecture |
File |
Checksums |
Any |
|
Source Archive |
Any |
|
Amazon Linux 2 |
x64 |
|
Red Hat Enterprise Linux 7 |
x64 |
|
Red Hat Enterprise Linux 8 |
x64 |
|
Ubuntu 16.04 (xenial) |
x64 |
|
Ubuntu 18.04 (bionic) |
x64 |
|
Ubuntu 20.04 (focal) |
x64 |
|
Debian 9 (stretch) |
x64 |
|
Debian 10 (buster) |
x64 |
|
Debian 11 (bullseye) |
x64 |
|
Windows (Visual Studio 2015, VC14) |
x64 |
|
Windows (Visual Studio 2017, VC15) |
x64 |
|
Windows (Visual Studio 2019, VC16) |
x64 |
|
Windows (Visual Studio 2015 TLS, VC14) |
x64 |
|
Windows (Visual Studio 2017 TLS, VC15) |
x64 |
|
Windows (Visual Studio 2019 TLS, VC16) |
x64 |
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 |
|
Source Archive |
Any |
|
Amazon Linux 2 |
x64 |
|
Red Hat Enterprise Linux 7 |
x64 |
|
Red Hat Enterprise Linux 8 |
x64 |
|
Ubuntu 16.04 (xenial) |
x64 |
|
Ubuntu 18.04 (bionic) |
x64 |
|
Ubuntu 20.04 (focal) |
x64 |
|
Debian 9 (stretch) |
x64 |
|
Debian 10 (buster) |
x64 |
|
Windows (Visual Studio 2015, VC14) |
x64 |
|
Windows (Visual Studio 2017, VC15) |
x64 |
|
Windows (Visual Studio 2019, VC16) |
x64 |
|
Windows (Visual Studio 2015 TLS, VC14) |
x64 |
|
Windows (Visual Studio 2017 TLS, VC15) |
x64 |
|
Windows (Visual Studio 2019 TLS, VC16) |
x64 |
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 |
|
Source Archive |
Any |
|
Amazon Linux 2 |
x64 |
|
Red Hat Enterprise Linux 7 |
x64 |
|
Red Hat Enterprise Linux 8 |
x64 |
|
Ubuntu 16.04 (xenial) |
x64 |
|
Ubuntu 18.04 (bionic) |
x64 |
|
Ubuntu 20.04 (focal) |
x64 |
|
Debian 9 (stretch) |
x64 |
|
Debian 10 (buster) |
x64 |
|
Windows (Visual Studio 2015, VC14) |
x64 |
|
Windows (Visual Studio 2017, VC15) |
x64 |
|
Windows (Visual Studio 2019, VC16) |
x64 |
|
Windows (Visual Studio 2015 TLS, VC14) |
x64 |
|
Windows (Visual Studio 2017 TLS, VC15) |
x64 |
|
Windows (Visual Studio 2019 TLS, VC16) |
x64 |
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 |
|
Source Archive |
Any |
|
Amazon Linux 2 |
x64 |
|
Red Hat Enterprise Linux 7 |
x64 |
|
Red Hat Enterprise Linux 8 |
x64 |
|
Ubuntu 16.04 (xenial) |
x64 |
|
Ubuntu 18.04 (bionic) |
x64 |
|
Ubuntu 20.04 (focal) |
x64 |
|
Debian 9 (stretch) |
x64 |
|
Debian 10 (buster) |
x64 |
|
Windows (Visual Studio 2015, VC14) |
x64 |
|
Windows (Visual Studio 2017, VC15) |
x64 |
|
Windows (Visual Studio 2019, VC16) |
x64 |
|
Windows (Visual Studio 2015 TLS, VC14) |
x64 |
|
Windows (Visual Studio 2017 TLS, VC15) |
x64 |
|
Windows (Visual Studio 2019 TLS, VC16) |
x64 |
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 ofLCB_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 toLCB_ERR_CAS_MISMATCH
. Now it returned only in cases where concurrency problem detected by query engine. OtherwiseLCB_ERR_DML_FAILURE
will be used. -
CCBC-1373: Return
LCB_ERR_TIMEOUT
if the library is not able to resolve collection identifier. Previously eitherLCB_ERR_COLLECTION_NOT_FOUND
orLCB_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 withenable_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 |
|
Source Archive |
Any |
|
Amazon Linux 2 |
x64 |
|
Red Hat Enterprise Linux 7 |
x64 |
|
Red Hat Enterprise Linux 8 |
x64 |
|
Ubuntu 16.04 (xenial) |
x64 |
|
Ubuntu 18.04 (bionic) |
x64 |
|
Ubuntu 20.04 (focal) |
x64 |
|
Debian 9 (stretch) |
x64 |
|
Debian 10 (buster) |
x64 |
|
Windows (Visual Studio 2015, VC14) |
x64 |
|
Windows (Visual Studio 2017, VC15) |
x64 |
|
Windows (Visual Studio 2019, VC16) |
x64 |
|
Windows (Visual Studio 2015 TLS, VC14) |
x64 |
|
Windows (Visual Studio 2017 TLS, VC15) |
x64 |
|
Windows (Visual Studio 2019 TLS, VC16) |
x64 |
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 |
|
Source Archive |
Any |
|
Amazon Linux 2 |
x64 |
|
Red Hat Enterprise Linux 7 |
x64 |
|
Red Hat Enterprise Linux 8 |
x64 |
|
Ubuntu 16.04 (xenial) |
x64 |
|
Ubuntu 18.04 (bionic) |
x64 |
|
Ubuntu 20.04 (focal) |
x64 |
|
Debian 9 (stretch) |
x64 |
|
Debian 10 (buster) |
x64 |
|
Windows (Visual Studio 2015, VC14) |
x64 |
|
Windows (Visual Studio 2017, VC15) |
x64 |
|
Windows (Visual Studio 2019, VC16) |
x64 |
|
Windows (Visual Studio 2015 TLS, VC14) |
x64 |
|
Windows (Visual Studio 2017 TLS, VC15) |
x64 |
|
Windows (Visual Studio 2019 TLS, VC16) |
x64 |
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
andLCB_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 ofconfig_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 toLCB_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 |
|
Source Archive |
Any |
|
Amazon Linux 2 |
x64 |
|
Red Hat Enterprise Linux 7 |
x64 |
|
Red Hat Enterprise Linux 8 |
x64 |
|
Ubuntu 16.04 (xenial) |
x64 |
|
Ubuntu 18.04 (bionic) |
x64 |
|
Ubuntu 20.04 (focal) |
x64 |
|
Debian 9 (stretch) |
x64 |
|
Debian 10 (buster) |
x64 |
|
Windows (Visual Studio 2015, VC14) |
x64 |
|
Windows (Visual Studio 2017, VC15) |
x64 |
|
Windows (Visual Studio 2019, VC16) |
x64 |
|
Windows (Visual Studio 2015 TLS, VC14) |
x64 |
|
Windows (Visual Studio 2017 TLS, VC15) |
x64 |
|
Windows (Visual Studio 2019 TLS, VC16) |
x64 |
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 tolcb_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 |
|
Source Archive |
Any |
|
Amazon Linux 2 |
x64 |
|
Red Hat Enterprise Linux 7 |
x64 |
|
Red Hat Enterprise Linux 8 |
x64 |
|
Ubuntu 16.04 (xenial) |
x64 |
|
Ubuntu 18.04 (bionic) |
x64 |
|
Ubuntu 20.04 (focal) |
x64 |
|
Debian 9 (stretch) |
x64 |
|
Debian 10 (buster) |
x64 |
|
Windows (Visual Studio 2015, VC14) |
x64 |
|
Windows (Visual Studio 2017, VC15) |
x64 |
|
Windows (Visual Studio 2015 TLS, VC14) |
x64 |
|
Windows (Visual Studio 2017 TLS, VC15) |
x64 |
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
withstd::shuffle
. fixing build ofcbc-n1qlback
tool.
Downloads
Platform |
Architecture |
File |
Checksums |
Any |
|
Source Archive |
Any |
|
Amazon Linux 2 |
x64 |
|
Red Hat Enterprise Linux 7 |
x64 |
|
Red Hat Enterprise Linux 8 |
x64 |
|
Ubuntu 16.04 (xenial) |
x64 |
|
Ubuntu 18.04 (bionic) |
x64 |
|
Ubuntu 20.04 (focal) |
x64 |
|
Debian 9 (stretch) |
x64 |
|
Debian 10 (buster) |
x64 |
|
Windows (Visual Studio 2015, VC14) |
x64 |
|
Windows (Visual Studio 2017, VC15) |
x64 |
|
Windows (Visual Studio 2015 TLS, VC14) |
x64 |
|
Windows (Visual Studio 2017 TLS, VC15) |
x64 |
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.
Downloads
Platform |
Architecture |
File |
Checksums |
Any |
|
Source Archive |
Any |
|
Amazon Linux 2 |
x64 |
|
Red Hat Enterprise Linux 7 |
x64 |
|
Red Hat Enterprise Linux 8 |
x64 |
|
Ubuntu 16.04 (xenial) |
x64 |
|
Ubuntu 18.04 (bionic) |
x64 |
|
Ubuntu 20.04 (focal) |
x64 |
|
Debian 9 (stretch) |
x64 |
|
Debian 10 (buster) |
x64 |
|
Windows (Visual Studio 2015, VC14) |
x64 |
|
Windows (Visual Studio 2017, VC15) |
x64 |
|
Windows (Visual Studio 2015 TLS, VC14) |
x64 |
|
Windows (Visual Studio 2017 TLS, VC15) |
x64 |
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 ofrecv()
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 |
|
Source Archive |
Any |
|
Amazon Linux 2 |
x64 |
|
Red Hat Enterprise Linux 7 |
x64 |
|
Red Hat Enterprise Linux 8 |
x64 |
|
Ubuntu 16.04 (xenial) |
x64 |
|
Ubuntu 18.04 (bionic) |
x64 |
|
Ubuntu 20.04 (focal) |
x64 |
|
Debian 9 (stretch) |
x64 |
|
Debian 10 (buster) |
x64 |
|
Windows (Visual Studio 2015, VC14) |
x64 |
|
Windows (Visual Studio 2017, VC15) |
x64 |
|
Windows (Visual Studio 2017 TLS, VC15) |
x64 |
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
andtracing_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 |
|
Source Archive |
Any |
|
Amazon Linux 2 |
x64 |
|
Red Hat Enterprise Linux 7 |
x64 |
|
Red Hat Enterprise Linux 8 |
x64 |
|
Ubuntu 16.04 (xenial) |
x64 |
|
Ubuntu 18.04 (bionic) |
x64 |
|
Debian 9 (stretch) |
x64 |
|
Debian 10 (buster) |
x64 |
|
Windows (Visual Studio 2015, VC14) |
x64 |
|
Windows (Visual Studio 2017, VC15) |
x64 |
|
Windows (Visual Studio 2017 TLS, VC15) |
x64 |
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 withstd::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 |
|
Source Archive |
Any |
|
Amazon Linux 2 |
x64 |
|
Red Hat Enterprise Linux 7 |
x64 |
|
Red Hat Enterprise Linux 8 |
x64 |
|
Ubuntu 16.04 (xenial) |
x64 |
|
Ubuntu 18.04 (bionic) |
x64 |
|
Debian 9 (stretch) |
x64 |
|
Debian 10 (buster) |
x64 |
|
Windows (Visual Studio 2015, VC14) |
x64 |
|
Windows (Visual Studio 2017, VC15) |
x64 |
|
Windows (Visual Studio 2017 TLS, VC15) |
x64 |
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
tolcb_wait
. -
CCBC-1147: Return
LCB_SUCCESS
forlcb_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 |
|
Source Archive |
Any |
|
Amazon Linux 2 |
x64 |
|
Red Hat Enterprise Linux 7 |
x64 |
|
Red Hat Enterprise Linux 8 |
x64 |
|
Ubuntu 16.04 (xenial) |
x64 |
|
Ubuntu 18.04 (bionic) |
x64 |
|
Debian 9 (stretch) |
x64 |
|
Debian 10 (buster) |
x64 |
|
Windows (Visual Studio 2015, VC14) |
x64 |
|
Windows (Visual Studio 2017, VC15) |
x64 |
|
Windows (Visual Studio 2019, VC16) |
x64 |
|
Windows (Visual Studio 2017 TLS, VC15) |
x64 |
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.