Environment Mode

This document primarily introduces the three types of environments involved in TuGraph.

1.Classification

Based on the different functionalities supported by the environments, they can be categorized into the following:

  • The compilation environment has all dependent libraries for TuGraph compilation, including all dependencies of the running environment, and can compile TuGraph source code, but does not include precompiled TuGraph executable files and library files for developers to compile source code.

  • Running environment, with GCC/Java/Python environment, can run all functions of TuGraph, and can host full-text indexing, java client, c++ source code uploaded as plugin, and complete functions of python plugin, built-in TuGraph precompiled executable file and library files for customers to install and use directly without compiling source code.

  • Simplified operating environment, which is approximately equivalent to a bare system plus precompiled TuGraph. It can only run the basic functions of TuGraph. There is no C++ plugin to compile and run, only so upload, no full-text index, and no python plugin. It is for quick setup and trial use. After compiling TuGraph, all the required dependencies are packaged together in the form of .a files, eliminating the need for unnecessary additional dependencies during runtime. However, since TuGraph supports stored procedures, which involve compiling C++ code on the server, the required compilers still need to be present in the environment.

2.System Library

For the three types of environments, the required system libraries, excluding the TuGraph runtime package, are as follows:

  • Compilation Environment: It includes GCC, Python, Java compilers, as well as libraries such as ANTLR4 and Pybind11. Please refer to the tugraph-compile-*-Dockerfile for more details.

  • Runtime Environment: The main dependencies introduced by stored procedures include GCC, Boost, CMake, and others. Please refer to the tugraph-runtime-*-Dockerfile for more details.

  • Mini-Runtime Environment: There are no additional system library dependencies. Please refer to the tugraph-mini-runtime-*-Dockerfile for more details.