#c #cassandra #cql
#c #кассандра #cql
Вопрос:
Существует ли какая-либо законная, поддерживаемая библиотека C для взаимодействия с Cassandra? Это своего рода вопрос устранения неоднозначности. Поиск такого программного обеспечения всегда приводит к «cpp-драйверу» DataStax (странное и вводящее в заблуждение название) здесь:
https://github.com/datastax/cpp-driver
Что в этом странного, так это то, что libcql предшествовал этому, и теперь страница libcql перенаправляет на cpp-driver, указывая, что это больше не поддерживается, т.е.
https://github.com/mstump/libcql
Но код cpp-драйвера выглядит совершенно иначе, чем в libcql. На самом деле, пример кода в cpp-driver вообще не похож на C (больше похож на обычный C) и не имеет комментариев в коде. Похоже, это совершенно другой (и менее зрелый) проект. Тем не менее, DataStax по-прежнему ссылается на нее как на C . Кроме того, похоже, это единственный поддерживаемый проект, который обеспечивает взаимодействие C и / или C с Cassandra. Что случилось с libcql? Почему она претерпела какое-то странное преобразование после того, как была «передана» в DataStax?
Комментарии:
1. Действительно, так называемый драйвер C ужасен для использования с C . Объекты не управляются (их нужно явно освободить или обернуть в shared_ptr), а коллекции Cassandra не сопоставляются с коллекциями C (например, map, list).
Ответ №1:
libcql развивается / превращается в cpp-драйвер.
Как вы заметили, cpp-драйвер все еще находится в разработке, но его основные цели — привести его в соответствие с другими драйверами Cassandra от DataStax, поддерживающими такие функции, как:
- автоматическое обнаружение узлов
- подключаемые политики для маршрутизации, повторных попыток, сбоев
- чистый C API, который можно использовать как из C, C , так и из других драйверов lang (для обеспечения высокой производительности)
Некоторые функции уже доступны (упомянуты в http://www.datastax.com/dev/blog/datastax-cpp-driver-beta-release ), в то время как другие работают над JIRA.
И последнее, но не менее важное: автор libcql
joined DataStax, и в настоящее время он вносит свой вклад в cpp-driver
.