Skip to main content
Version: 2.4.0

Implement custom query modules

If you need to expand the Cypher language, Memgraph provides public APIs for writing custom query modules in Python and C.

Python API

Python API is defined in the mgp module that can be found in the Memgraph installation directory /usr/lib/memgraph/python_support. In essence, it is a wrapper around the C API. If you wish to write your own query modules using the Python API, you need to have Python version 3.5.0 or above installed.

For more information, check the Python API reference guide.
We also made an example module to help you start developing your own modules.

You can develop query modules in Python from Memgraph Lab (v2.0 and newer). Just navigate to Query Modules and click on New Module to start.

Custom modules developed via Memgraph Lab are located at /var/lib/memgraph/internal_modules.

C API

C API modules need to be compiled to a shared library so that they can be loaded when Memgraph starts. This means that you can write the procedures in any programming language that can work with C and be compiled to the ELF shared library format (.so). mg_procedure.h that can be found in Memgraph installation directory /usr/include/memgraph contains declarations of all functions that can be used to implement a query module procedure. To compile the module, you will have to pass the appropriate flags to the compiler, for example, clang:

clang -Wall -shared -fPIC -I /usr/include/memgraph example.c -o example.so

For more information, check the C API reference guide.
We also made an example module to help you start developing your own modules.

C++ API

C++ API modules, just like C API modules, need to be compiled to a shared library so that they can be loaded when Memgraph starts. This is done much in the same way as with C API modules.

For more information, check the C++ API reference guide.
We also made an example module to help you start developing your own modules.