Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
e3fba03
release/redhat: fix typo
wprzytula Aug 6, 2025
c6839c5
docs: rename index.rst to contents.rst
wprzytula Jul 21, 2025
944995d
docs: delete the sample page
wprzytula Jul 21, 2025
280a427
conf.py: update site description
wprzytula Jul 23, 2025
cd6fd9e
import Doxyfile.in from cpp-driver
wprzytula Jul 23, 2025
0de457e
adjust Doxyfile.in from cpp-driver
wprzytula Aug 14, 2025
3084f52
docs: import topics from cpp-driver
wprzytula Jul 23, 2025
f1c05c2
codewide: Scylla -> ScyllaDB
wprzytula Jul 23, 2025
7a9370d
codewide: remove mentions of ancient Cassandras
wprzytula Jul 23, 2025
1d752f0
docs/tracing: fix typos
wprzytula Jul 23, 2025
bd78961
docs: delete cloud topic
wprzytula Jul 23, 2025
079149f
docs: remove DSE features documentation
wprzytula Jul 23, 2025
ad31cc5
docs: mention only currect default consistency
wprzytula Jul 23, 2025
935e23e
docs: adjust for default client-side timestamps
wprzytula Jul 23, 2025
51527b9
docs: describe default serial consistency
wprzytula Jul 23, 2025
6660d53
docs: describe callbacks limitations on blocking
wprzytula Jul 23, 2025
a557f1b
docs: add main index.md
wprzytula Jul 29, 2025
11c9827
docs: add API index.md
wprzytula Jul 29, 2025
344e512
docs: rename Features -> Overview
wprzytula Aug 1, 2025
3480705
docs: extract Observability
wprzytula Aug 1, 2025
b2d509b
docs: specify tree structure in `contents.rst`
wprzytula Aug 1, 2025
f4f85fd
docs: extract load_balancing
wprzytula Aug 1, 2025
0b25e72
docs: extract speculative_execution
wprzytula Aug 1, 2025
91e8528
docs: retry_policies/README.md -> retry_policies.md
wprzytula Aug 1, 2025
d7d52c1
docs: extract performance tips
wprzytula Aug 1, 2025
58d05fa
docs: rename README->index and reduce nesting
wprzytula Aug 2, 2025
3e0e2a4
docs: replace underscores with hyphens
wprzytula Aug 2, 2025
e763be7
docs/ssl: fix heading level hierarchy
wprzytula Aug 2, 2025
a0e68c2
docs: remove FAQ, as it's empty anyway
wprzytula Aug 2, 2025
4056c2b
docs/configuration: extract connection config
wprzytula Aug 14, 2025
2d8e826
docs/configuration: extract nonsupported options
wprzytula Aug 2, 2025
e4fee9f
docs/basics/index.md: fix typo
wprzytula Aug 5, 2025
6f8fe5f
docs/basics: Remove supported versions column
wprzytula Aug 5, 2025
c5e18dc
docs: update links to point to ScyllaDB docs
wprzytula Aug 5, 2025
4e06587
docs: remove mentions of Custom types
wprzytula Aug 5, 2025
94da72a
docs/futures: small fixes
wprzytula Aug 5, 2025
01bd261
docs: more considerations on setting keyspace
wprzytula Aug 5, 2025
ba4b610
docswide: Cassandra -> ScyllaDB/Cassandra
wprzytula Aug 5, 2025
0b20294
docs/load-balancing: adjust for CPP-Rust
wprzytula Aug 5, 2025
36cc10d
docs/retry-polices: adjust for CPP-Rust
wprzytula Aug 5, 2025
6d141a2
docs: move client-configuration to configuration
wprzytula Aug 5, 2025
7674c5a
docs: move execution-profiles to configuration
wprzytula Aug 5, 2025
435e905
docs/exec_profile: mention SEP as available setting
wprzytula Aug 5, 2025
0aaf654
docs: move shard awareness to load balancing
wprzytula Aug 5, 2025
ade3ad0
docs/metrics: adjust for CPP-Rust
wprzytula Aug 5, 2025
d2d8184
docs/security: extract nonsupported features
wprzytula Aug 5, 2025
f3c7a92
docs/ssl: don't offer DataStax mailing list
wprzytula Aug 5, 2025
7872ddb
docs: SSL -> TLS
wprzytula Aug 5, 2025
ac168c8
docs/tls: remove reference to DataStax guide
wprzytula Sep 8, 2025
a32eb69
docs/security: extract authentication section
wprzytula Aug 6, 2025
4cebf23
docs: adjust quickstart code for CPP-Rust Driver
wprzytula Aug 5, 2025
958fc9f
docs/overview: fix IO thread description accuracy
wprzytula Aug 5, 2025
4b9672f
docs/overview: remove TODO section
wprzytula Aug 5, 2025
d31c471
docs/overview: Update links for cpp-rust-driver
wprzytula Aug 5, 2025
250bbca
docs: remove ccm VM setup documentation
wprzytula Aug 6, 2025
497f5b9
docs: extract Getting Started
wprzytula Aug 6, 2025
0fa2413
docs: extract Architecture Overview
wprzytula Aug 6, 2025
013c82c
docs/basics: move data types mapping
wprzytula Aug 6, 2025
85b077d
docs: client-configuration -> client-identity
wprzytula Aug 6, 2025
468253d
docs/configuration: add table of contents
wprzytula Aug 6, 2025
6b26131
docs/basics: group datatypes-related topics
wprzytula Aug 6, 2025
e2fdcc4
docs/basic: add table of contents
wprzytula Aug 6, 2025
28e380a
docs: basics -> using the driver
wprzytula Aug 14, 2025
8ade1ad
docs: fix typos found by Copilot
wprzytula Aug 14, 2025
b153d6f
docs/building: remove Windows section
wprzytula Aug 5, 2025
7e41906
docs: remove mentions of zlib dependency
wprzytula Aug 6, 2025
a0af65e
build system: remove zlib-related code
wprzytula Aug 6, 2025
30a68d8
docs: remove mentions of Kerberos dependency
wprzytula Aug 6, 2025
07c5cca
IT: remove embedded_ads code
wprzytula Aug 6, 2025
d14c200
build system: remove Kerberos-related code
wprzytula Aug 6, 2025
919edef
docs/building: modernise libuv mentions
wprzytula Aug 5, 2025
2e72964
docs: update building & installation instructions
wprzytula Aug 6, 2025
d8b65dc
docs: list contents on the front page
wprzytula Aug 14, 2025
ce89a9a
README: update front description
wprzytula Aug 7, 2025
80a0a1c
docs: setup sphinx
wprzytula Jul 29, 2025
75eeb05
.gitignore: add docs build files
wprzytula Sep 8, 2025
f3bc753
docs: DataStax -> ScyllaDB URLs
wprzytula Aug 5, 2025
1114a17
docs/conf.py: configure tags and latest version
wprzytula Sep 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,5 @@ cmake-build-debug/
version
docs/_build
log/
docs/source/api
doxygen/xml
3 changes: 0 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,10 @@ option(CASS_INSTALL_HEADER_IN_SUBDIR "Install header file under 'include/cassand
option(CASS_INSTALL_PKG_CONFIG "Install pkg-config file(s)" ON)
option(CASS_MULTICORE_COMPILATION "Enable multicore compilation" ON)
option(CASS_USE_BOOST_ATOMIC "Use Boost atomics library" OFF)
option(CASS_USE_KERBEROS "Use Kerberos" OFF)
option(CASS_USE_LIBSSH2 "Use libssh2 for integration tests" OFF)
option(CASS_USE_OPENSSL "Use OpenSSL" ON)
option(CASS_USE_STATIC_LIBS "Link static libraries when building executables" OFF)
option(CASS_USE_STD_ATOMIC "Use std::atomic library" ON)
option(CASS_USE_ZLIB "Use zlib" OFF)
option(CASS_USE_TIMERFD "Use timerfd (Linux only)" ON)
option(CASS_USE_LIBUV "Use libuv" OFF)

Expand All @@ -65,7 +63,6 @@ endif()

if(CASS_BUILD_INTEGRATION_TESTS OR CASS_BUILD_UNIT_TESTS)
set(CASS_USE_OPENSSL ON) # Required for tests
set(CASS_USE_KERBEROS ON) # Required for tests
set(CASS_USE_LIBUV ON)
endif()

Expand Down
1,864 changes: 1,864 additions & 0 deletions Doxyfile.in

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# ScyllaDB Cpp-Rust Driver
___
Wrapper around ScyllaDB's rust-driver compatible with Datastax cpp-driver.
Wrapper around [ScyllaDB's Rust Driver](https://cpp-rust-driver.docs.scylladb.com/stable), which is API-compatible with both ScyllaDB and Datastax C/C++ Driver and may be considered a drop-in replacement (with some minor limitations, see [Limitations](#limitations)).

#### Note: It is work in progress, bug reports and pull requests are welcome!

Expand Down Expand Up @@ -137,7 +137,7 @@ int main() {
___

The driver inherits almost all the features of C/C++ and Rust drivers, such as:
* [Asynchronous API](http://datastax.github.io/cpp-driver/topics/#futures)
* [Asynchronous API](https://cpp-rust-driver.docs.scylladb.com/stable/topics/#futures)
* Shard-aware routing
* Simple, Prepared and Batch statements
* Query paging
Expand All @@ -146,9 +146,9 @@ The driver inherits almost all the features of C/C++ and Rust drivers, such as:
* Retry policies
* SSL
* Authentication
* [Tuples](http://datastax.github.io/cpp-driver/topics/basics/tuples/) and [UDTs](http://datastax.github.io/cpp-driver/topics/basics/user_defined_types/)
* [Nested collections](http://datastax.github.io/cpp-driver/topics/basics/binding_parameters/#nested-collections)
* [Data types](http://datastax.github.io/cpp-driver/topics/basics/data_types/)
* [Tuples](https://cpp-rust-driver.docs.scylladb.com/stable/topics/basics/data-types/tuples/) and [UDTs](http://https://cpp-rust-driver.docs.scylladb.com/stable/topics/basics/data-types/user-defined-types/)
* [Nested collections](https://cpp-rust-driver.docs.scylladb.com/stable/topics/basics/binding-parameters/#nested-collections)
* [Data types](https://cpp-rust-driver.docs.scylladb.com/stable/topics/basics/data-types/)
* Schema metadata (keyspace metadata, materialized views, etc.)

# Limitations
Expand Down Expand Up @@ -395,7 +395,7 @@ Some tests are added to GitHub Actions workflows and are used to test every pull

To build and run the integration tests several requirements need to be met:

* Install `libuv`, `openssl` and `kerberos` on your system:
* Install `libuv` and `openssl` on your system:

```shell
# On Ubuntu
Expand Down
45 changes: 0 additions & 45 deletions cmake/Dependencies.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -107,51 +107,6 @@ if(CASS_USE_OPENSSL)
set(CASS_LIBS ${CASS_LIBS} ${OPENSSL_LIBRARIES})
endif()

#------------------------
# ZLIB
#------------------------

if(CASS_USE_ZLIB)
if(NOT ZLIB_LIBRARY_NAME)
# Setup the root directory for zlib
set(ZLIB_ROOT "${PROJECT_SOURCE_DIR}/lib/zlib/"
"${PROJECT_SOURCE_DIR}/build/libs/zlib/")
set(ZLIB_ROOT ${ZLIB_ROOT} ${ZLIB_ROOT_DIR} $ENV{ZLIB_ROOT_DIR})

# Ensure zlib was found (assign zlib include/libraries or present warning)
find_package(ZLIB)
if(ZLIB_FOUND)
# Determine if the static library needs to be used for Windows
if(WIN32 AND CASS_USE_STATIC_LIBS)
string(REPLACE "zlib.lib" "zlibstatic.lib" ZLIB_LIBRARIES "${ZLIB_LIBRARIES}")
endif()

# Assign zlib properties
set(CASS_INCLUDES ${CASS_INCLUDES} ${ZLIB_INCLUDE_DIRS})
set(CASS_LIBS ${CASS_LIBS} ${ZLIB_LIBRARIES})
set(HAVE_ZLIB On)
else()
message(WARNING "Could not find zlib, try to set the path to zlib root folder in the system variable ZLIB_ROOT_DIR")
message(WARNING "zlib libraries will not be linked into build")
endif()
else()
# Assign zlib properties
set(CASS_INCLUDES ${CASS_INCLUDES} ${ZLIB_INCLUDE_DIRS})
set(CASS_LIBS ${CASS_LIBS} ${ZLIB_LIBRARIES})
endif()
endif()

#------------------------
# Kerberos
#------------------------

if(CASS_USE_KERBEROS)
# Discover Kerberos and assign Kerberos include and libraries
find_package(Kerberos REQUIRED)
set(CASS_INCLUDES ${CASS_INCLUDES} ${KERBEROS_INCLUDE_DIR})
set(CASS_LIBS ${CASS_LIBS} ${KERBEROS_LIBRARIES})
endif()

#------------------------
# Boost
#------------------------
Expand Down
31 changes: 0 additions & 31 deletions cmake/ExternalProject-OpenSSL.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,6 @@ if(NOT OPENSSL_VERSION)
set(OPENSSL_VERSION "1.0.2s")
endif()
option(OPENSSL_INSTALL_PREFIX "OpenSSL installation prefix location")
if(CASS_USE_ZLIB)
include(ExternalProject-zlib)
endif()
set(OPENSSL_VERSION ${OPENSSL_VERSION} CACHE STRING "OpenSSL version to build and install" FORCE)

# Determine the major and minor version of OpenSSL used
Expand Down Expand Up @@ -91,19 +88,6 @@ else()
endif()
set(OPENSSL_ROOT_DIR "${OPENSSL_INSTALL_DIR}" CACHE STRING "OpenSSL root directory" FORCE)

# Create build options for the platform build scripts
if(BUILD_SHARED_LIBS)
if(CASS_USE_ZLIB)
set(OPENSSL_ZLIB_CONFIGURE_ARGUMENT "zlib-dynamic")
set(ZLIB_LIB zlib.lib)
endif()
else()
if(CASS_USE_ZLIB)
set(OPENSSL_ZLIB_CONFIGURE_ARGUMENT "no-zlib-dynamic")
set(ZLIB_LIB zlibstatic.lib)
endif()
endif()

# Determine if shared or static library should be built
set(OPENSSL_CONFIGURE_COMPILER "no-asm no-ssl2")
if(BUILD_SHARED_LIBS)
Expand Down Expand Up @@ -273,16 +257,6 @@ file(APPEND ${OPENSSL_CONFIGURE_SCRIPT}
"POPD\r\n"
"SET PATH=${PERL_PATH};%PATH%\r\n"
"CALL :SHORTENPATH \"${OPENSSL_NATIVE_INSTALL_DIR}\" SHORTENED_OPENSSL_INSTALL_DIR\r\n")
if(CASS_USE_ZLIB)
# OpenSSL requires zlib paths to be relative (otherwise build errors may occur)
externalproject_get_property(${OPENSSL_LIBRARY_NAME} SOURCE_DIR)
file(RELATIVE_PATH ZLIB_INCLUDE_RELATIVE_DIR ${SOURCE_DIR} ${ZLIB_INCLUDE_DIR})
file(TO_NATIVE_PATH ${ZLIB_INCLUDE_RELATIVE_DIR} ZLIB_NATIVE_INCLUDE_RELATIVE_DIR)
file(RELATIVE_PATH ZLIB_LIBRARY_RELATIVE_DIR ${SOURCE_DIR} ${ZLIB_LIBRARY_DIR})
file(TO_NATIVE_PATH ${ZLIB_LIBRARY_RELATIVE_DIR} ZLIB_NATIVE_LIBRARY_RELATIVE_DIR)
set(OPENSSL_WITH_ZLIB_ARGUMENT "zlib ${OPENSSL_ZLIB_CONFIGURE_ARGUMENT} --with-zlib-include=\"${ZLIB_NATIVE_INCLUDE_RELATIVE_DIR}\" --with-zlib-lib=\"${ZLIB_NATIVE_LIBRARY_RELATIVE_DIR}\\${ZLIB_LIB}\"")
set(OPENSSL_WITH_ZLIB_ARGUMENT "zlib ${OPENSSL_ZLIB_CONFIGURE_ARGUMENT} --with-zlib-include=\"${ZLIB_INCLUDE_RELATIVE_DIR}\" --with-zlib-lib=\"${ZLIB_LIBRARY_RELATIVE_DIR}\\${ZLIB_LIB}\"")
endif()
file(APPEND ${OPENSSL_CONFIGURE_SCRIPT}
"perl Configure ${OPENSSL_WITH_ZLIB_ARGUMENT} --openssldir=!SHORTENED_OPENSSL_INSTALL_DIR! --prefix=!SHORTENED_OPENSSL_INSTALL_DIR! ${OPENSSL_CONFIGURE_COMPILER}\r\n"
"IF NOT %ERRORLEVEL% EQU 0 (\r\n"
Expand Down Expand Up @@ -317,10 +291,5 @@ file(APPEND ${OPENSSL_CONFIGURE_SCRIPT}
" FOR %%A IN (\"%~1\") DO SET %~2=%%~SA\r\n"
" EXIT /B\r\n")

# Determine if zlib should be added as a dependency
if(CASS_USE_ZLIB)
add_dependencies(${OPENSSL_LIBRARY_NAME} ${ZLIB_LIBRARY_NAME})
endif()

# Update the include directory to use OpenSSL
include_directories(${OPENSSL_INCLUDE_DIR})
99 changes: 0 additions & 99 deletions cmake/ExternalProject-zlib.cmake

This file was deleted.

81 changes: 0 additions & 81 deletions cmake/FindKerberos.cmake

This file was deleted.

2 changes: 1 addition & 1 deletion dist/redhat/scylla-cpp-rust-driver.spec
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Conflicts: scylla-cpp-driver
API-compatible rewrite of https://github.com/scylladb/cpp-driver as a wrapper for Rust driver.

%package devel
Summary: Development libraries for ${name}
Summary: Development libraries for %{name}
Group: Development/Tools
Requires: %{name} = %{version}-%{release}
Requires: pkgconfig
Expand Down
3 changes: 3 additions & 0 deletions docs/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,13 @@ all: dirhtml
.PHONY: setupenv
setupenv:
pip install -q poetry
sudo apt-get install doxygen

.PHONY: setup
setup:
$(POETRY) install
$(POETRY) update
cd .. && doxygen Doxyfile.in

.PHONY: update
update:
Expand Down
Loading