Внешние интерфейсы, библиотеки и коннекторы для взаимодействия с Reindexer

Для подключения к Reindexer разработаны коннекторы для интеграции с различными языками программирования. Также для подключения по сети можно использовать протокол HTTP или gRPC. Поддерживаются форматы данных:

  • CJSON. Используется коннекторами при взаимодействии с Reindexer через cproto.
  • JSON, MSGPACK, Protobuf. Используются при взаимодействии с Reindexer по HTTP REST API и gRPC API.

Коннекторы и библиотеки для интеграции с Reindexer для разных языков программирования

Для работы с СУБД через языки программирования предлагаются официальные коннекторы от команды разработки Reindexer для Python, Java и Go, а также библиотеки от сторонних разработчиков для Rust, PHP, .NET.

Официальные коннекторы для работы с Reindexer от команды разработки СУБД

Коннектор для Go

Поддерживается для всех доступных вариантов использования Reindexer: Standalone, Built-in и Built-in server. Взаимодействие с СУБД происходит через бинарный интерфейс приложений ABI и cproto.

Для использования Built-in и Built-in server требуется пакет reindexer-dev (либо сборка C++-библиотек reindexer/reindexer_server_library из исходников).

Пример использования коннектора.

Коннектор Reindexer для Java (rx-connector)

Поддерживается для всех доступных вариантов использования Reindexer: Standalone, Built-in и Built-in server. Взаимодействие с СУБД происходит через бинарный интерфейс приложений ABI и cproto. Требуется Java версии 1.8 и новее. Для использования rx-connector в проектах Java или Kotlin нужно добавить в Maven зависимости:

<dependency>
    <groupId>com.github.restream</groupId>
    <artifactId>rx-connector</artifactId>
    <version>[LATEST_VERSION]</version>
</dependency>

Так же для использования Built-in требуется пакет reindexer-dev (либо сборка C++-библиотеки reindexer из исходников).

Подробное описание коннектора и примеры использования.

Коннектор для Python (Pyreindexer)

Коннектор поддерживается при использовании Reindexer в вариантах Standalone и Built-in. Взаимодействие с СУБД происходит через бинарный интерфейс приложений ABI и cproto. Требуется версия Python 3.8 или новее.

Для использования коннекторе требуется пакет reindexer-dev (либо сборка C++-библиотеки reindexer из исходников).

Для установки коннектора используйте команду:

pip3 install pyreindexer

Подробное описание коннектора и примеры использования.

Коннекторы для работы с Reindexer от сторонних разработчиков

Коннектор Reindexer для PHP

Поддерживается только при использовании Reindexer в варианте Standalone. Взаимодействие с СУБД происходит через HTTP REST API. Коннектор устанавливается через менеджер зависимостей с помощью команды:

composer require smolevich/reindexer-client

Указание библиотеки в файле конфигурации Composer:

{
  "endpoint": "http://localhost:9088",
  "client_config": {
    "http_errors": 0
  }
}

Здесь:

  • endpoint - адрес экземпляра Reindexer,
  • client_config - настройки PHP-HTTP-клиента Guzzle для PHP.

Подробное описание коннектора и примеры использования.

Коннектор Reindexer для Rust (reindexer-rs)

Коннектор поддерживается при использовании Reindexer в вариантах Standalone и Built-in. Взаимодействие с СУБД происходит через бинарный интерфейс приложений ABI. Устанавливается через менеджер пакетов APT. Подробное описание коннектора и примеры использования.

Коннектор Reindexer для .NET (ReindexerNet)

Поддерживается при использовании Reindexer в вариантах Built-in, Built-in server (взаимодействие с СУБД происходит через бинарный интерфейс приложений ABI) и Standalone (взаимодействие с СУБД — через gRPC). ReindexerNet на данный момент находится в стадии Альфа тестирования. Подробная информация о коннекторе.

HTTP REST API

Самый простой способ взаимодействия с Reindexer, независимо от языка программирования — использование REST API. Актуальная версия OpenAPI спецификации. Также можно открыть интерактивную REST API документацию прямо на хосте, где запущен Reindexer или использовать Swagger editor. Для этого после запуска СУБД перейдите по ссылке http://127.0.0.1:9088/swagger.

gRPC API

gRPC API СУБД Reindexer определяется в файле .proto, а создание клиентов возможно на любом из поддерживаемых gRPC языков.

В официальном Docker-образе Reindexer gRPC включен по умолчанию. При выборе этого варианта никаких дополнительных настроек не потребуется.

При использовании наших deb/rpm-пакетов gRPC API недоступен. Если вы не хотите использовать Docker-образ, и при этом есть необходимость в gRPC, скачайте исходные файлы Reindexer, а затем:

  1. Соберите reindexer_server с опцией cmake -DENABLE_GRPC.
  2. Запустите reindexer_server с флагом --grpc. Подробнее — в разделе Конфигурация сервера Reindexer.
  3. Создайте gRPC-клиент на основе файла proto-описания reindexer.proto для используемого вами языка программирования. Подробнее.
  4. Подключите gRPC-клиент к серверу Reindexer. Порт для подключения 16534.