Внешние интерфейсы, библиотеки и коннекторы для взаимодействия с 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.

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

Коннектор 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>

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

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

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

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

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. Интерактивная версия документации. Также можно открыть интерактивную REST API документацию прямо на хосте, где запущен Reindexer. Для этого после запуска СУБД перейдите по ссылке 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.