ScyllaDB University Live | Free Virtual Training Event
Learn more
ScyllaDB Documentation Logo Documentation
  • Deployments
    • Cloud
    • Server
  • Tools
    • ScyllaDB Manager
    • ScyllaDB Monitoring Stack
    • ScyllaDB Operator
  • Drivers
    • CQL Drivers
    • DynamoDB Drivers
  • Resources
    • ScyllaDB University
    • Community Forum
    • Tutorials
Install
Ask AI
ScyllaDB Docs ScyllaDB CPP-Rust Driver Building

Building¶

The ScyllaDB C/C++ Driver will build on most standard Unix-like platforms. Packages are available for the platforms listed in [Installation][installation.md].

These packages can be successfully installed on other, compatible systems, but we do not support such configurations and recommend building from sources instead.

Compatibility¶

  • Compilers:

    • rustc 1.82+ (as part of the Rust toolchain, available at [rustup.rs]);

    • any reasonable C/C++ compiler, such as GCC or Clang (for tests & examples).

Dependencies¶

The C/C++ driver depends on the following software:

  • CMake v3.15+

  • libuv 1.x (only for tests and examples, not required for the driver itself)

  • OpenSSL versions 1.0.1 through 3.x.x are supported (optional, only if you want to enable TLS support in the driver)

* Use the CASS_USE_OPENSSL CMake option to enable/disable OpenSSL support. Disabling this option will disable SSL/TLS protocol support within the driver; defaults to On.

Note that only CMake is mandatory for building the driver. The others:

  • libuv is only required for building tests and some of the examples, not the driver itself.

  • OpenSSL is only required if you want to enable TLS support in the driver.

Linux/MacOS¶

Installing dependencies¶

Initial environment setup¶

RHEL/Rocky (dnf)¶
dnf install automake cmake gcc-c++ git libtool
Ubuntu (APT)¶
apt update
apt install build-essential cmake git
Mac OS (Brew)¶

Homebrew (or brew) is a free and open-source software package management system that simplifies the installation of software on the Mac OS operating system. Ensure Homebrew is installed before proceeding.

brew update
brew upgrade
brew install autoconf automake cmake libtool

libuv¶

libuv is required only for tests and examples, not required for the driver itself. libuv v1.x is recommended. When using a package manager for your operating system, make sure you install v1.x.

Ubuntu¶
sudo apt update
sudo apt install libuv-dev
RHEL/Rocky¶
sudo dnf install libuv-devel
Mac OS (Brew)¶
brew install libuv
Manually build and install¶

The following procedures should be performed if packages are not available for your system.

Browse [https://dist.libuv.org/dist/] and download the newest stable version available. Follow the instructions in the downloaded package to build and install it.

OpenSSL¶

RHEL/Rocky (dnf)¶
dnf install openssl-devel
Ubuntu (APT)¶
apt install libssl-dev
Mac OS (Brew)¶
brew install openssl

Note: For Mac OS X, a link needs to be created in order to make OpenSSL available to the building libraries:

brew link --force openssl
Manually build and install¶

Browse [https://openssl-library.org/source/] and download the newest stable version available. Follow the instructions in the downloaded package to build and install it.

Building and installing the C/C++ driver¶

mkdir build
pushd build
cmake ..
make
make install
popd

Building examples (optional)¶

Examples are not built by default and need to be enabled. Update your CMake line to build examples.

cmake -DCASS_BUILD_EXAMPLES=On ..

Building tests (optional)¶

Tests (integration and unit) are not built by default and need to be enabled.

All tests¶
cmake -DCASS_BUILD_TESTS=On ..

Note: This will build both the integration and unit tests.

Integration tests¶
cmake -DCASS_BUILD_INTEGRATION_TESTS=On ..
Unit tests¶
cmake -DCASS_BUILD_UNIT_TESTS=On ..

Was this page helpful?

PREVIOUS
Installation
NEXT
Testing
  • Create an issue
  • Edit this page

On this page

  • Building
    • Compatibility
    • Dependencies
    • Linux/MacOS
      • Installing dependencies
        • Initial environment setup
          • RHEL/Rocky (dnf)
          • Ubuntu (APT)
          • Mac OS (Brew)
        • libuv
          • Ubuntu
          • RHEL/Rocky
          • Mac OS (Brew)
          • Manually build and install
        • OpenSSL
          • RHEL/Rocky (dnf)
          • Ubuntu (APT)
          • Mac OS (Brew)
          • Manually build and install
      • Building and installing the C/C++ driver
        • Building examples (optional)
        • Building tests (optional)
          • All tests
          • Integration tests
          • Unit tests
ScyllaDB CPP-Rust Driver
  • master
    • master
  • CPP-over-Rust Driver
  • API Documentation
    • CassAggregateMeta
    • CassAuthenticator
    • CassAuthenticatorCallbacks
    • CassBatch
    • CassCluster
    • CassCollection
    • CassColumnMeta
    • CassCustomPayload
    • CassDataType
    • CassErrorResult
    • CassExecProfile
    • CassFunctionMeta
    • CassFuture
    • CassIndexMeta
    • CassInet
    • CassIterator
    • CassKeyspaceMeta
    • CassLogMessage
    • CassMaterializedViewMeta
    • CassMetrics
    • CassNode
    • CassPrepared
    • CassResult
    • CassRetryPolicy
    • CassRow
    • CassSchemaMeta
    • CassSession
    • CassSpeculativeExecutionMetrics
    • CassSsl
    • CassStatement
    • CassTableMeta
    • CassTimestampGen
    • CassTuple
    • CassUserType
    • CassUuid
    • CassUuidGen
    • CassValue
    • CassVersion
  • Getting Started
  • Architecture Overview
  • Installation
  • Building
  • Testing
  • Using the Driver
    • Batches
    • Binding Parameters
    • Client-side timestamps
    • Consistency
    • Data Types
      • The date and time Types
      • Tuples
      • User-Defined Types (UDTs)
      • UUIDs
    • Futures
    • Handling Results
    • Keyspaces
    • Prepared Statements
    • Schema Metadata
  • Configuration
    • Load balancing
    • Retry policies
    • Speculative Execution
    • Connection
    • Execution Profiles
    • Performance Tips
    • Client Configuration
  • Security
    • Authentication
    • TLS
  • Observability
    • Logging
    • Tracing
    • Metrics
Docs Tutorials University Contact Us About Us
© 2025, ScyllaDB. All rights reserved. | Terms of Service | Privacy Policy | ScyllaDB, and ScyllaDB Cloud, are registered trademarks of ScyllaDB, Inc.
Last updated on 16 Sep 2025.
Powered by Sphinx 7.4.7 & ScyllaDB Theme 1.8.8
Ask AI