Это небольшое обновление для тех, кто следит за новостями о Reduct Storage и его экосистеме.
Я только что выпустил новую версию SDK, которая поддерживает HTTP API v0.7.
Наиболее важной новой возможностью является метод IBucket::Query
. Он позволяет итерировать записи за заданный интервал времени:
using reduct::IBucket;
using reduct::IClient;
int main() {
auto client = IClient::Build("https://play.reduct-storage.dev");
// Create a bucket
auto [bucket, create_err] = client->GetOrCreateBucket("bucket");
if (create_err) {
std::cerr << "Error: " << create_err;
return -1;
}
// Walk through the data
err = bucket->Query("entry-1", std::nullopt, IBucket::Time::clock::now(), std::nullopt, [](auto&& record) {
std::string blob;
auto read_err = record.Read([&blob](auto chunk) {
blob.append(chunk);
return true;
});
if (!read_err) {
std::cout << "Read blob: " << blob;
}
return true;
});
}
Вы можете использовать библиотеку с помощью макросов CMake FetchContet
или установить ее из исходного кода:
git clone https://github.com/reduct-storage/reduct-cpp.git
cd reduct-cpp
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
sudo cmake --build . --target install
В вашем CMakeLists.txt:
find_package(ReductCpp 0.8.0)
find_package(ZLIB)
find_package(OpenSSL)
add_executable(you_app you_app.cc)
target_link_libraries(you_app ${REDUCT_CPP_LIBRARIES} ${ZLIB_LIBRARIES} OpenSSL::SSL OpenSSL::Crypto)
Для получения дополнительной информации читайте здесь