couchbase
Version:
The official Couchbase Node.js Client Library.
80 lines (61 loc) • 2.91 kB
Markdown
# Couchbase C++ client
[](https://opensource.org/licenses/Apache-2.0)
[](https://github.com/couchbase/couchbase-cxx-client/actions?query=workflow%3Alinters+branch%3Amain)
[](https://github.com/couchbase/couchbase-cxx-client/actions?query=workflow%3Asanitizers+branch%3Amain)
[](https://github.com/couchbase/couchbase-cxx-client/actions?query=workflow%3Atests+branch%3Amain)
* Documentation and User Guides: https://docs.couchbase.com/cxx-sdk/current/hello-world/start-using-sdk.html
* API Reference: https://docs.couchbase.com/sdk-api/couchbase-cxx-client
* Issue Tracker: https://issues.couchbase.com/projects/CXXCBC/issues
* Server Documentation: https://docs.couchbase.com/home/server.html
## Using with CPM.cmake
[CMake Package Manager (CPM.cmake)](https://github.com/cpm-cmake/CPM.cmake)
makes it easy to include the library into your project. The CMake Package
Manager (CPM) simplifies dependency management. Use the following snippet to
update your `CMakeLists.txt`:
```cmake
CPMAddPackage(
NAME
couchbase_cxx_client
GIT_TAG
1.3.1
VERSION
1.3.1
GITHUB_REPOSITORY
"couchbase/couchbase-cxx-client"
OPTIONS
"COUCHBASE_CXX_CLIENT_STATIC_BORINGSSL ON")
```
If you install the library in the system using the `install` target or a package
management system, you can use `FindPackage`:
```cmake
cmake_minimum_required(VERSION 3.19)
project(minimal)
find_package(couchbase_cxx_client REQUIRED)
add_executable(minimal minimal.cxx)
target_link_libraries(minimal PRIVATE couchbase_cxx_client::couchbase_cxx_client)
```
## Building the project
This repository uses `CMake` for building, so everything should build once the
basic development dependencies exist (C++17 compiler).
### Building (command-line)
```shell
git clone https://github.com/couchbase/couchbase-cxx-client.git
cd couchbase-cxx-client
mkdir build
cmake -S . -B build -DCOUCHBASE_CXX_CLIENT_STATIC_BORINGSSL=ON
cmake --build build
```
## Running tests
The tests exist in the `/test` directory. Developers will add more tests and
will organize this directory soon to differentiate between common test types
for different testing approaches (for example, `unit tests`,
`integration tests`, `system tests`).
### Testing (command-line)
```shell
cd build
export TEST_CONNECTION_STRING=couchbase://127.0.0.1
export TEST_USERNAME=Administrator
export TEST_PASSWORD=password
export TEST_BUCKET=default
ctest
```