Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
a2ddccc
[Kafka API] Fix bug in kafka transactions (#21310)
a-serebryanskiy Aug 27, 2025
95e9aa0
Added a new sdk method DescribeSystemView and a corresponded Grpc ser…
n00bcracker Aug 27, 2025
e603485
check clock skew within pile and other bridge mode healthcheck update…
vporyadke Aug 27, 2025
549f457
Support XDS protocols for client load balancing in order to request t…
molotkov-and Aug 27, 2025
915fb15
Refactor bridge api according to negotiation (#22264)
mregrock Aug 27, 2025
6448c6b
Add incremental backup to operation API (#21848)
pixcc Aug 27, 2025
7863848
Topic SDK: fix in direct reader (#22539)
qyryq Aug 27, 2025
909a6a1
[C++ SDK] Update vector example (#22613)
Gazizonoki Aug 27, 2025
7d92f6d
Fixed concurrent modification of the HierarchyData (#22663)
nshestakov Aug 27, 2025
8a7ce77
Added pile info in Discovery/ListEndpoints response (#22549)
Gazizonoki Aug 27, 2025
6b1f46d
[C++ SDK] Fixed vector example performance (#22838)
Gazizonoki Aug 27, 2025
9bf8ff0
Fixed java build for public API protos (#22901)
Gazizonoki Aug 27, 2025
2adc431
Configuration for the result set format in QueryService with Arrow (#…
dahbka-lis Aug 27, 2025
b57354c
[C++ SDK] Fix compatibility for VALUE format (#22975)
dahbka-lis Aug 27, 2025
7d6e127
Add external_data_channels_count creatte table feature. (#21151)
Tony-Romanov Aug 27, 2025
47912d2
2dc healthcheck updates: smarter merge + updates for arbiter (#23035)
vporyadke Aug 27, 2025
c2fd7a3
Refactor pile name in discovery response (#23152)
Gazizonoki Aug 27, 2025
eb97103
Rename PROMOTE to PROMOTED (#23223)
mregrock Aug 27, 2025
536ee9d
[C++ SDK] Fixed tsan test fails (#23374)
Gazizonoki Aug 27, 2025
586a521
[C++ SDK] Improved wide date types (#23153)
Gazizonoki Aug 27, 2025
043178a
Add restore long ops (#22710)
Enjection Aug 27, 2025
6653d26
Add generation in bridge list (#23511)
mregrock Aug 27, 2025
f4d2dc7
[C++ SDK] Refactor IAM cred provider (#23411)
Gazizonoki Aug 27, 2025
fe9356e
Update import generation: 20
github-actions[bot] Aug 27, 2025
a1878fd
Fixed CMakeLists and increased grpc version
Gazizonoki Aug 28, 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
72 changes: 46 additions & 26 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,69 +1,89 @@
FROM --platform=linux/amd64 mcr.microsoft.com/devcontainers/cpp:1-ubuntu-22.04

# Install software-properties-common for add-apt-repository
RUN apt-get update && apt-get -y install software-properties-common

# Install CMake
ENV CMAKE_VERSION=3.27.7
RUN add-apt-repository ppa:ubuntu-toolchain-r/test && apt-get -y update && apt-get -y install make && \
wget https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}.tar.gz && \
tar -xvzf cmake-${CMAKE_VERSION}.tar.gz && cd cmake-${CMAKE_VERSION} && \
./bootstrap && \
make -j$(nproc) && \
make install
RUN apt-get -y update && apt-get -y install software-properties-common && add-apt-repository ppa:ubuntu-toolchain-r/test

# Install C++ tools and libraries
RUN apt-get -y update && apt-get -y install \
git gdb ninja-build libidn11-dev ragel yasm protobuf-compiler \
protobuf-compiler-grpc libprotobuf-dev libgrpc++-dev libgrpc-dev libgrpc++1 libgrpc10 \
git gdb ninja-build libidn11-dev ragel yasm libc-ares-dev libre2-dev \
rapidjson-dev zlib1g-dev libxxhash-dev libzstd-dev libsnappy-dev libgtest-dev libgmock-dev \
libbz2-dev libdouble-conversion-dev libstdc++-13-dev gcc-13 g++-13 liblz4-dev libssl-dev \
&& apt-get clean && rm -rf /var/lib/apt/lists/*

# Install CMake
ENV CMAKE_VERSION=3.27.7
RUN wget https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-x86_64.sh \
-q -O cmake-install.sh \
&& chmod u+x cmake-install.sh \
&& ./cmake-install.sh --skip-license --prefix=/usr/local \
&& rm cmake-install.sh

# Install LLVM
ENV LLVM_VERSION=16
RUN wget https://apt.llvm.org/llvm.sh && \
chmod u+x llvm.sh && \
./llvm.sh 16
./llvm.sh ${LLVM_VERSION}

# Update alternatives to use clang-16 by default
RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-16 10000 && \
update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-16 10000 && \
update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-16 10000
RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${LLVM_VERSION} 10000 && \
update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-${LLVM_VERSION} 10000 && \
update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-${LLVM_VERSION} 10000

# Update alternatives to use gcc-13 by default
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 10000 && \
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 10000

# Install libiconv
ENV LIBICONV_VERSION=1.15
RUN wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-${LIBICONV_VERSION}.tar.gz && \
tar -xvzf libiconv-${LIBICONV_VERSION}.tar.gz && cd libiconv-${LIBICONV_VERSION} && \
./configure --prefix=/usr/local && \
make && \
make install
# Install abseil-cpp
ENV ABSEIL_CPP_VERSION=20230802.0
RUN wget -O abseil-cpp-${ABSEIL_CPP_VERSION}.tar.gz https://github.com/abseil/abseil-cpp/archive/refs/tags/${ABSEIL_CPP_VERSION}.tar.gz && \
tar -xvzf abseil-cpp-${ABSEIL_CPP_VERSION}.tar.gz && cd abseil-cpp-${ABSEIL_CPP_VERSION} && \
mkdir build && cd build && \
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DABSL_PROPAGATE_CXX_STD=ON .. && \
cmake --build . --config Release --target install

# Install protobuf
ENV PROTOBUF_VERSION=3.21.12
RUN wget -O protobuf-${PROTOBUF_VERSION}.tar.gz https://github.com/protocolbuffers/protobuf/archive/refs/tags/v${PROTOBUF_VERSION}.tar.gz && \
tar -xvzf protobuf-${PROTOBUF_VERSION}.tar.gz && cd protobuf-${PROTOBUF_VERSION} && \
mkdir build && cd build && \
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_INSTALL=ON -Dprotobuf_ABSL_PROVIDER=package .. && \
cmake --build . --config Release --target install

# Install grpc
ENV GRPC_VERSION=1.41.0
RUN wget -O grpc-${GRPC_VERSION}.tar.gz https://github.com/grpc/grpc/archive/refs/tags/v${GRPC_VERSION}.tar.gz && \
tar -xvzf grpc-${GRPC_VERSION}.tar.gz && cd grpc-${GRPC_VERSION} && \
mkdir build && cd build && \
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=17 \
-DgRPC_INSTALL=ON -DgRPC_BUILD_TESTS=OFF -DgRPC_BUILD_CSHARP_EXT=OFF \
-DgRPC_ZLIB_PROVIDER=package -DgRPC_CARES_PROVIDER=package -DgRPC_RE2_PROVIDER=package \
-DgRPC_SSL_PROVIDER=package -DgRPC_PROTOBUF_PROVIDER=package -DgRPC_ABSL_PROVIDER=package \
-DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF -DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF -DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF \
-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF -DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF -DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF .. && \
cmake --build . --config Release --target install

# Install base64
ENV BASE64_VERSION=0.5.2
RUN wget -O base64-${BASE64_VERSION}.tar.gz https://github.com/aklomp/base64/archive/refs/tags/v${BASE64_VERSION}.tar.gz && \
tar -xvzf base64-${BASE64_VERSION}.tar.gz && cd base64-${BASE64_VERSION} && \
mkdir build && cd build && \
cmake -DCMAKE_BUILD_TYPE=Release .. && \
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release .. && \
cmake --build . --config Release --target install

# Install brotli
ENV BROTLI_VERSION=1.1.0
RUN wget -O brotli-${BROTLI_VERSION}.tar.gz https://github.com/google/brotli/archive/refs/tags/v${BROTLI_VERSION}.tar.gz && \
tar -xvzf brotli-${BROTLI_VERSION}.tar.gz && cd brotli-${BROTLI_VERSION} && \
mkdir build && cd build && \
cmake -DCMAKE_BUILD_TYPE=Release .. && \
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release .. && \
cmake --build . --config Release --target install

# Install jwt-cpp
ENV JWT_CPP_VERSION=0.7.0
RUN wget -O jwt-cpp-${JWT_CPP_VERSION}.tar.gz https://github.com/Thalhammer/jwt-cpp/archive/refs/tags/v${JWT_CPP_VERSION}.tar.gz && \
tar -xvzf jwt-cpp-${JWT_CPP_VERSION}.tar.gz && cd jwt-cpp-${JWT_CPP_VERSION} && \
mkdir build && cd build && \
cmake -DCMAKE_BUILD_TYPE=Release .. && \
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release .. && \
cmake --build . --config Release --target install

# Install ccache 4.8.1 or above
Expand Down
61 changes: 46 additions & 15 deletions .github/actions/prepare_vm/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,9 @@ runs:
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get -y update
sudo apt-get -y install git ninja-build libidn11-dev ragel yasm protobuf-compiler \
protobuf-compiler-grpc libprotobuf-dev libgrpc++-dev libgrpc-dev libgrpc++1 libgrpc10 \
sudo apt-get -y install git ninja-build libidn11-dev ragel yasm libc-ares-dev libre2-dev \
rapidjson-dev zlib1g-dev libxxhash-dev libzstd-dev libsnappy-dev libgtest-dev libgmock-dev \
libbz2-dev libdouble-conversion-dev libstdc++-13-dev gcc-13 g++-13
libbz2-dev liblz4-dev libdouble-conversion-dev libstdc++-13-dev gcc-13 g++-13
wget https://apt.llvm.org/llvm.sh
chmod u+x llvm.sh
sudo ./llvm.sh 16
Expand All @@ -24,32 +23,64 @@ runs:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 10000
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 10000

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
cd ../
# Install abseil-cpp
wget -O abseil-cpp-20230802.0.tar.gz https://github.com/abseil/abseil-cpp/archive/refs/tags/20230802.0.tar.gz
tar -xvzf abseil-cpp-20230802.0.tar.gz
cd abseil-cpp-20230802.0
mkdir build && cd build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DABSL_PROPAGATE_CXX_STD=ON ..
sudo cmake --build . --config Release --target install
cd ../../

# Install protobuf
wget -O protobuf-3.21.12.tar.gz https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.21.12.tar.gz
tar -xvzf protobuf-3.21.12.tar.gz
cd protobuf-3.21.12
mkdir build && cd build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_INSTALL=ON -Dprotobuf_ABSL_PROVIDER=package ..
sudo cmake --build . --config Release --target install
cd ../../

# Install gRPC
wget -O grpc-1.41.0.tar.gz https://github.com/grpc/grpc/archive/refs/tags/v1.41.0.tar.gz
tar -xvzf grpc-1.41.0.tar.gz && cd grpc-1.41.0
mkdir build && cd build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=17 \
-DgRPC_INSTALL=ON -DgRPC_BUILD_TESTS=OFF -DgRPC_BUILD_CSHARP_EXT=OFF \
-DgRPC_ZLIB_PROVIDER=package -DgRPC_CARES_PROVIDER=package -DgRPC_RE2_PROVIDER=package \
-DgRPC_SSL_PROVIDER=package -DgRPC_PROTOBUF_PROVIDER=package -DgRPC_ABSL_PROVIDER=package \
-DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF -DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF -DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF \
-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF -DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF -DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF ..
sudo cmake --build . --config Release --target install
cd ../../

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

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

# Install jwt-cpp
wget -O jwt-cpp-0.7.0.tar.gz https://github.com/Thalhammer/jwt-cpp/archive/refs/tags/v0.7.0.tar.gz
tar -xvzf jwt-cpp-0.7.0.tar.gz && cd jwt-cpp-0.7.0
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ..
sudo cmake --build . --config Release --target install
cd ../../

# Install ccache
(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)
sudo rm -rf llvm.sh libiconv-1.15.tar.gz base64-0.5.2.tar.gz brotli-1.1.0.tar.gz jwt-cpp-0.7.0.tar.gz \
libiconv-1.15 base64-0.5.2 brotli-1.1.0 jwt-cpp-0.7.0
sudo rm -rf llvm.sh abseil-cpp-20230802.0.tar.gz protobuf-3.21.12.tar.gz grpc-1.41.0.tar.gz \
base64-0.5.2.tar.gz brotli-1.1.0.tar.gz jwt-cpp-0.7.0.tar.gz abseil-cpp-20230802.0 \
protobuf-3.21.12 grpc-1.41.0 base64-0.5.2 brotli-1.1.0 jwt-cpp-0.7.0
2 changes: 1 addition & 1 deletion .github/import_generation.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
20
21
2 changes: 1 addition & 1 deletion .github/last_commit.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
aa02b3d7cea3b9461fe806646f99a51df36d695f
362cf04ca2b49a71004ea0558dbf5a041db0e0c6
3 changes: 2 additions & 1 deletion CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
"name": "base",
"displayName": "Generic Config",
"cacheVariables": {
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
"CMAKE_PREFIX_PATH": "~/install"
},
"generator": "Ninja",
"binaryDir": "${sourceDir}/build"
Expand Down
66 changes: 0 additions & 66 deletions cmake/FindgRPC.cmake

This file was deleted.

2 changes: 1 addition & 1 deletion cmake/external_libs.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ find_package(IDN REQUIRED)
find_package(Iconv REQUIRED)
find_package(OpenSSL REQUIRED)
find_package(Protobuf REQUIRED)
find_package(gRPC REQUIRED)
find_package(gRPC 1.41.0 REQUIRED)
find_package(ZLIB REQUIRED)
find_package(xxHash REQUIRED)
find_package(ZSTD REQUIRED)
Expand Down
1 change: 1 addition & 0 deletions examples/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ add_subdirectory(bulk_upsert_simple)
add_subdirectory(pagination)
add_subdirectory(secondary_index)
add_subdirectory(secondary_index_builtin)
add_subdirectory(time)
add_subdirectory(topic_reader)
add_subdirectory(topic_writer/transaction)
add_subdirectory(ttl)
Expand Down
37 changes: 37 additions & 0 deletions examples/time/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
add_executable(time_example)

target_link_libraries(time_example
PUBLIC
yutil
getopt
YDB-CPP-SDK::Query
YDB-CPP-SDK::Helpers
)

target_sources(time_example
PRIVATE
main.cpp
)

vcs_info(time_example)

if (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64")
target_link_libraries(time_example PUBLIC
cpuid_check
)
endif()

if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
target_link_options(time_example PRIVATE
-ldl
-lrt
-Wl,--no-as-needed
-lpthread
)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
target_link_options(time_example PRIVATE
-Wl,-platform_version,macos,11.0,11.0
-framework
CoreFoundation
)
endif()
Loading
Loading