MAGE (Memgraph Advanced Graph Extensions) provides a collection of user-defined graph analytics modules and procedures that extend Memgraph's Cypher query language. It empowers users to implement and run various graph algorithms directly within Memgraph, catering to data scientists, researchers, and developers working with graph databases.
How It Works
MAGE leverages Memgraph's query module system, allowing algorithms to be written in C++, Python, and Rust. These modules are loaded dynamically by Memgraph, extending its capabilities with custom procedures. This approach enables efficient execution of complex graph algorithms directly within the database, avoiding costly data transfers and enabling real-time analytics.
Quick Start & Requirements
- Docker:
docker run -p 7687:7687 -p 7444:7444 memgraph/memgraph-mage
- From Source (Linux): Requires Memgraph installation, Rust, Python 3.12, and several development libraries (e.g.,
libcurl4
, libssl-dev
, build-essential
, cmake
, g++
, clang
).
- Setup: Docker installation is straightforward. Building from source involves dependency management and compilation.
- Documentation: https://mage.memgraph.com/
Highlighted Details
- Extensive library of algorithms including centrality measures (PageRank, Betweenness), community detection (Louvain, Leiden), link prediction, and graph embeddings (Node2Vec).
- Support for multiple languages (C++, Python, Rust) and integration with libraries like PyTorch Geometric and NetworkX.
- Includes online/streaming versions of algorithms for dynamic graph analysis.
- Features utilities for graph analysis, data import/export, and LLM integration.
Maintenance & Community
- Actively developed by the Memgraph team and community.
- Community forum available for discussions and feedback.
- Contribution guide and Code of Conduct provided.
Licensing & Compatibility
- Licensed under the Apache 2.0 License.
- Compatible with Memgraph versions >= 2.11.0 for MAGE >= 1.11.9. Compatibility table provided in README.
Limitations & Caveats
- Building from source requires a specific set of development dependencies and a Linux environment.
- Some Python dependencies (e.g., PyTorch Geometric) may have specific CUDA/hardware requirements.