我最近开始使用RethinkDB,它既简单又美观。尤其是在创建面向对象的应用程序时:
但是一段时间后,我发现RethinkDB没有官方的c ++驱动程序(尽管它是用c ++编写的)。然后,我决定使用https://github.com/AtnNn/librethinkdbxx来使用社区支持的驱动程序,但又无法使其在Windows上运行。如我所见,它仅适用于基于Linux的操作系统。
所以问题是为什么???对于C ++开发人员来说,它似乎也是一个完美的DBMS。为什么没人为C ++创建官方驱动程序。也许RethinkDB有一些关键的缺点?
您能告诉我RethinkDB怎么了吗?
答案 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 ++虫洞。 :-)