Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/microsoft/GraphEngine

Microsoft Graph Engine
https://github.com/microsoft/GraphEngine

distributed-computing dotnet graph-engine graph-query-language in-memory-computations in-memory-storage

Last synced: about 2 months ago
JSON representation

Microsoft Graph Engine

Awesome Lists containing this project

README

        

# Microsoft Graph Engine

| - | Windows | Linux |
|:------:|:------:|:------:|
|Build|![Build status badge](https://msai.visualstudio.com/GraphEngine/_apis/build/status/GraphEngine-Windows)|![Build status badge](https://msai.visualstudio.com/GraphEngine/_apis/build/status/GraphEngine-Linux)|

This repository contains the source code of [Microsoft Graph
Engine][graph-engine] and its graph query language -- [Language Integrated
Knowledge Query][likq] (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][likq-gh] 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.

## Getting started

Recommended operating system: Windows 10 or Ubuntu 22.04.

### Building on Windows

Download and install [Visual Studio][vs] 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.

### Building on Linux

Install g++, cmake, and libssl-dev. For example, on Ubuntu, simply run

```shell
sudo apt update && sudo apt install g++ cmake libssl-dev
```

Install [.NET SDK x64 8.0][dotnet-on-linux]. For example, on Ubuntu 22.04, run
`sudo apt update && sudo apt install -y dotnet-sdk-8.0`.
Then, build GraphEngine with the following command:

```shell
bash tools/build.sh
```

The build script has been tested on Ubuntu 22.04 with g++ 11.4.0.

### Using the built packages

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.

### Running your first Graph Engine app

Go to the `samples/Friends` folder, execute `dotnet restore` and `dotnet run` to
run the sample project.

## Contributing

Pull requests, issue reports, and suggestions are welcome.

Please read the [code of conduct](CODE_OF_CONDUCT.md) before contributing code.

Follow these [instructions](SECURITY.md) for reporting security issues.

## License

Copyright (c) Microsoft Corporation. All rights reserved.

Licensed under the [MIT](LICENSE.md) license.

## Disclaimer

Microsoft Graph Engine is a research project. It is not an officially supported Microsoft product.

## References

We kindly request that any published paper that makes use of Microsoft Graph
Engine cites the following paper:

- [Bin Shao](https://www.binshao.info/), [Haixun Wang](https://haixun.github.io/), and [Yatao Li](https://www.microsoft.com/en-us/research/people/yatli/). [Trinity: A Distributed Graph Engine on a Memory Cloud](https://www.graphengine.io/downloads/papers/Trinity.pdf). In SIGMOD 2013: Proceedings of SIGMOD 2013, New York, New York, USA, June 22-27, 2013, pages 505-516. ([BibTeX](https://www.graphengine.io/downloads/papers/Trinity.bib))

If you want to learn more about the algorithms and applications built on top of Microsoft Graph Engine, please refer to these [publications](https://www.graphengine.io/docs/publications/index.html).

[graph-engine]: https://www.graphengine.io/

[likq]: https://www.graphengine.io/video/likq.video.html

[likq-gh]: https://github.com/Microsoft/GraphEngine/tree/master/src/Modules/LIKQ

[academic-graph-search]: https://azure.microsoft.com/en-us/services/cognitive-services/academic-knowledge/

[vs-extension]: https://visualstudiogallery.msdn.microsoft.com/12835dd2-2d0e-4b8e-9e7e-9f505bb909b8

[graph-engine-core]: https://www.nuget.org/packages/GraphEngine.Core/

[likq-nuget]: https://www.nuget.org/packages/GraphEngine.LIKQ/

[vs]: https://www.visualstudio.com/

[dotnet-download]: https://dotnet.microsoft.com/

[dotnet-on-linux]: https://dotnet.microsoft.com/en-us/download/dotnet

[license]: LICENSE.md