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
--branchto 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
masterbranch:$ git clone https://github.com/vesoft-inc/nebula-cpp.git
-
-
Change the working directory to
nebula-cpp.$ cd nebula-cpp -
Create a directory named
buildand change the working directory to it.$ mkdir build && cd build -
Generate the
makefilefile 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
-joption 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.cppfile. -
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_examplelibrary_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();