Skip to content

evd0903/ydb-cpp-sdk

 
 

Repository files navigation

WARNING: THIS IS SUPER MEGA EXTRA ALPHA VERSION OF C++ DRIVER FOR YDB!!!

Don't use it in production environment!

If you ok with this warning, then...

Building YDB C++ SDK from sources

Prerequisites

  • cmake 3.22+
  • clang 16+
  • git 2.20+
  • ninja 1.10+
  • ragel
  • yasm
  • protoc

Library dependencies

  • gRPC
  • protobuf
  • OpenSSL
  • Iconv
  • IDN
  • rapidjson
  • xxhash
  • zlib
  • zstd
  • lz4
  • snappy 1.1.8+
  • base64
  • brotli 1.1.10+

Runtime requirements

  • libidn11-dev (IDN)
  • libiconv (Iconv)

Testing

  • gtest
  • gmock

Install dependencies

sudo apt-get -y update
sudo apt-get -y install git cmake ninja-build libidn11-dev ragel yasm protobuf-compiler \
  protobuf-compiler-grpc libprotobuf-dev libgrpc++-dev libgrpc-dev libgrpc++1 libgrpc10 \
  rapidjson-dev zlib1g-dev libxxhash-dev libzstd-dev libsnappy-dev liblz4-dev \
  libgtest-dev libgmock-dev libbz2-dev

wget https://apt.llvm.org/llvm.sh
chmod u+x llvm.sh
sudo ./llvm.sh 16

wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz
tar -xvzf libiconv-1.15.tar.gz && cd libiconv-1.15
./configure --prefix=/usr/local
make
sudo make install

wget https://github.com/aklomp/base64/archive/refs/tags/v0.5.2.tar.gz
tar -xvzf v0.5.2.tar.gz && cd base64-0.5.2
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
sudo cmake --build . --config Release --target install

wget https://github.com/google/brotli/archive/refs/tags/v1.1.0.tar.gz
tar -xvzf v1.1.0.tar.gz
cd brotli-1.1.0
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
sudo cmake --build . --config Release --target install

Create the work directory

mkdir ~/ydbwork && cd ~/ydbwork
mkdir build

Install ccache

Install ccache into /usr/local/bin/. The recommended version is 4.8.1 or above, the minimum required version is 4.7.

(V=4.8.1; curl -L https://github.com/ccache/ccache/releases/download/v${V}/ccache-${V}-linux-x86_64.tar.xz | \
sudo tar -xJ -C /usr/local/bin/ --strip-components=1 --no-same-owner ccache-${V}-linux-x86_64/ccache)

Clone the ydb-cpp-sdk repository

git clone https://github.com/ydb-platform/ydb-cpp-sdk.git

Configure

Generate build configuration using ccache

cd build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release \
-DCCACHE_PATH=/usr/local/bin/ccache \
-DCMAKE_TOOLCHAIN_FILE=../ydb-cpp-sdk/clang.toolchain \
../ydb-cpp-sdk

Build

cd build
ninja

Releases

No releases published

Packages

No packages published

Languages

  • C++ 81.0%
  • C 16.7%
  • CMake 1.4%
  • Cython 0.3%
  • Makefile 0.3%
  • Python 0.2%
  • Other 0.1%