Nebula CPP¶
Nebula CPP is a C++ client for connecting to and managing the NebulaGraph database.
Prerequisites¶
- You have installed C++ and GCC 4.8 or later versions.
- You have prepared the correct resources.
Compatibility with NebulaGraph¶
NebulaGraph version | Nebula CPP version |
---|---|
2.6.2 | 2.5.0 |
2.0.1 | 2.0.0 |
2.0.0 | 2.0.0 |
Install Nebula CPP¶
-
Clone the Nebula CPP source code to the host.
-
(Recommended) To install a specific version of Nebula CPP, use the Git option
--branch
to specify the branch. For example, to install v2.5.0, run the following command:$ git clone --branch v2.5.0 https://github.com/vesoft-inc/nebula-cpp.git
-
To install the daily development version, run the following command to download the source code from the
master
branch:$ git clone https://github.com/vesoft-inc/nebula-cpp.git
-
-
Change the working directory to
nebula-cpp
.$ cd nebula-cpp
-
Create a directory named
build
and change the working directory to it.$ mkdir build && cd build
-
Generate the
makefile
file with CMake.Note
The default installation path is
/usr/local/nebula
. To modify it, add the-DCMAKE_INSTALL_PREFIX=<installation_path>
option while running the following command.$ cmake -DCMAKE_BUILD_TYPE=Release ..
Note
If G++ does not support C++ 11, add the option
-DDISABLE_CXX11_ABI=ON
. -
Compile Nebula CPP.
To speed up the compiling, use the
-j
option to set a concurrent numberN
. It should be \(\min(\text{CPU}core number,\frac{the_memory_size(GB)}{2})\).$ make -j{N}
-
Install Nebula CPP.
$ sudo make install
-
Update the dynamic link library.
$ sudo ldconfig
Use Nebula CPP¶
Compile the CPP file to an executable file, then you can use it. The following steps take using SessionExample.cpp
for example.
-
Use the example code to create the
SessionExample.cpp
file. -
Run the following command to compile the file.
$ LIBRARY_PATH=<library_folder_path>:$LIBRARY_PATH g++ -std=c++11 SessionExample.cpp -I<include_folder_path> -lnebula_graph_client -o session_example
library_folder_path
: The storage path of the NebulaGraph dynamic libraries. The default path is/usr/local/nebula/lib64
.
include_folder_path
: The storage of the NebulaGraph header files. The default path is/usr/local/nebula/include
.
For example:
$ LIBRARY_PATH=/usr/local/nebula/lib64:$LIBRARY_PATH g++ -std=c++11 SessionExample.cpp -I/usr/local/nebula/include -lnebula_graph_client -o session_example
Core of the example code¶
This sub-section shows the core of the example code. For all the code, see SessionExample.
nebula::init(&argc, &argv);
auto address = "192.168.xx.1:9669";
nebula::ConnectionPool pool;
pool.init({address}, nebula::Config{});
auto session = pool.getSession("root", "nebula");
auto result = session.execute("SHOW HOSTS");
std::cout << *result.data;
std::atomic_bool complete{false};
session.asyncExecute("SHOW HOSTS", [&complete](nebula::ExecutionResponse&& cbResult) {
std::cout << *cbResult.data;
complete.store(true);
});
session.release();