重新思考DB C ++驱动程序

时间:2019-10-02 19:43:57

标签: c++ rethinkdb

我最近开始使用RethinkDB,它既简单又美观。尤其是在创建面向对象的应用程序时:

  1. 实体关系图对于应用程序和应用程序都相同 数据库
  2. 应用程序中的数据自动与 数据库(很棒)
  3. 非常容易实现发布-订阅 消息传递架构

但是一段时间后,我发现RethinkDB没有官方的c ++驱动程序(尽管它是用c ++编写的)。然后,我决定使用https://github.com/AtnNn/librethinkdbxx来使用社区支持的驱动程序,但又无法使其在Windows上运行。如我所见,它仅适用于基于Linux的操作系统。

所以问题是为什么???对于C ++开发人员来说,它似乎也是一个完美的DBMS。为什么没人为C ++创建官方驱动程序。也许RethinkDB有一些关键的缺点?

您能告诉我RethinkDB怎么了吗?

1 个答案:

答案 0 :(得分:0)

C ++驱动程序是一个简单的客户端。您可以轻松地使其适用于Windows。您可以完成两个步骤:

1)编写一个CMakefile来生成Windows的MSVC解决方案文件或g ++ Makefile。

cmake_minimum_required (VERSION 3.0)

project (rethink)
find_package( PythonInterp 2.7 REQUIRED )

set(MY_BIN_DIR "C:/Build/Stuff/$(PlatformToolset)/Bin/$(Platform)")
set(MY_LIB_DIR "C:/Build/Stuff/$(PlatformToolset)/Lib/$(Platform)")

add_library(RethinkClient STATIC
    librethinkdbxx/src/cursor.cc
    librethinkdbxx/src/datum.cc
    librethinkdbxx/src/json.cc
    librethinkdbxx/src/term.cc
    librethinkdbxx/src/types.cc
    librethinkdbxx/src/utils.cc
#   librethinkdbxx/src/connection.cc
    )

add_custom_target(
 run ALL
 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/librethinkdbxx/reql/gen.py ${CMAKE_CURRENT_SOURCE_DIR}/librethinkdbxx/reql/ql2.proto > ${CMAKE_CURRENT_SOURCE_DIR}/librethinkdbxx/src/protocol_defs.h
 BYPRODUCTS protocol_defs.h
 COMMENT "Generating protocol file"
)

set_target_properties(RethinkClient PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${MY_LIB_DIR})

add_dependencies(RethinkClient run)

2)重写connection.cc以在Windows中进行编译。您可以使用WIN32套接字或boost :: asio库编写它。它只涉及打开/关闭插座,读取和写入。没什么了。

这将打开访问RethinkDB所需的C ++虫洞。 :-)