- | Windows | Linux |
---|---|---|
Build |
This repository contains the source code of Microsoft Graph Engine and its graph query language -- Language Integrated Knowledge Query (LIKQ).
Microsoft Graph Engine is a distributed in-memory data processing engine, underpinned by a strongly-typed in-memory key-value store and a general-purpose distributed computation engine.
LIKQ is a versatile graph query language built atop Graph Engine. It combines the capability of fast graph exploration with the flexibility of lambda expressions. Server-side computations can be expressed in lambda expressions, embedded in LIKQ, and executed on the Graph Engine servers during graph traversal.
The main version number is bumped to 3.0 to reflect the recent toolchain updates.
- .NET 7.0 is now the mainly supported target framework
- Visual Studio 2022 is supported
One goal of Graph Engine 3.0 is to bring the system up to date and make it slimmer. Some obsolete or outdated modules and tools have been moved to the Unsupported directory and removed from the main build pipeline.
Recommended operating system: Windows 10 or Ubuntu 22.04.
Download and install Visual Studio with the following "workloads" and "individual components" selected:
- The ".NET desktop development" and "Desktop development with C++" workloads.
- The ".NET Portable Library targeting pack" individual component.
Open a PowerShell window, run .\tools\build.ps1
for building the NuGet packages.
The script has been tested on Windows 10 (22H2) with Visual Studio 2022.
Install g++, cmake, and libssl-dev. For example, on Ubuntu, simply run
sudo apt update && sudo apt install g++ cmake libssl-dev
Install .NET SDK x64 7.0. For example, on Ubuntu 22.04, run
sudo apt update && sudo apt install -y dotnet-sdk-7.0
.
Then, build GraphEngine with the following command:
bash tools/build.sh
The build script has been tested on Ubuntu 22.04 with g++ 11.4.0.
You can find the built NuGet packages build/GraphEngine**._version_.nupkg
in
the build
folder. In the building process, the build
directory has been
registered as a local NuGet repository and the local package cache for
GraphEngine.Core
has been cleared. After the packages are built, run dotnet restore
to use the newly built packages.
Go to the samples/Friends
folder, execute dotnet restore
and dotnet run
to
run the sample project.
Pull requests, issue reports, and suggestions are welcome.
Please read the code of conduct before contributing code.
Follow these instructions for reporting security issues.
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT license.
Microsoft Graph Engine is a research project. It is not an officially supported Microsoft product.
We kindly request that any published paper that makes use of Microsoft Graph Engine cites the following paper:
- Bin Shao, Haixun Wang, and Yatao Li. Trinity: A Distributed Graph Engine on a Memory Cloud. In SIGMOD 2013: Proceedings of SIGMOD 2013, New York, New York, USA, June 22-27, 2013, pages 505-516. (BibTeX)
If you want to learn more about the algorithms and applications built on top of Microsoft Graph Engine, please refer to these publications.