/Raphtory

Raphtory: A Distributed Temporal Graph Processing System

Primary LanguageScalaApache License 2.0Apache-2.0

Raphtory

test and build test and build Latest Tag Latest Release Conventional Commits

Raphtory is an open-source platform for distributed real-time temporal graph analytics, allowing you to load and process large dynamic datasets across time. If you would like a brief summary of what its used for before fully diving into the getting started guide please check out our blog! For more in-depth info you can watch our most recent talk on Raphtory at AIUK 2022, KGC 2022 and NetSciX.

If you like the sound of what we are working on, come join the Slack!

0.1.0 - Raphtory Post Alpha Release

With the release of 0.1.0, we have completely rebuilt Raphtory from the ground up. The full changelog can be dug into here, but as a sneak peek this includes:

  • A brand new Analytical API with expressive windowing and history exploration, composable algorithms/chaining, global aggregators/histograms, filters/sampling, multilayer graph projections, clearer output formats and much more.
  • A communication layer which allows for fine-grained management of how Raphtory components send messages. This by default is split between Apache Pulsar for updates and vertex messages and Akka for control messages. This fixes a number of issues faced in prior versions, notably around message back pressure and cluster management.
  • An initial Python client for Raphtory which will be brought fully in line with the Scala version over the coming months.

This has replaced the now deprecated Raphtory Alpha which will remain available here.

Getting Started

The best way to get started with Raphtory is to visit our ReadTheDocs site where we have tutorials on how to use Raphtory for graph building, analysis, and more.

Note: Raphtory is built with Scala. We recommend using IntelliJ IDE for your code. They have a community version which is free. Follow their guide for installation.

Good entry points for the very beginning are

Once you are feeling more comfortable with Raphtory you can checkout out

  • ScalaDocs and Algorithm API - We provide a fully documented API for Raphtory, explaining all user-facing classes and functions. This sits alongside explanations for the included algorithmic library (both temporal and static). These algorithms can be used to analyse your datasets once ingested or as a basis to implement your own custom algorithms.
  • Raphtory Streaming and Distributed Deployment - Raphtory can be deployed as a single node or a distributed cluster. For the latter, we provide runners to establish the cluster on bare metal or on top of Kubernetes.
  • Using the Python client - We are developing a full python client alongside the main scala implementation so that you can attach Raphtory to your favorite data science tools.

Community

  • Follow the latest developments on the official Raphtory Twitter
  • Join the Slack - we are always happy to answer any questions and chat about the project! Feel free to join the #raphtory-development and #askaway channel to discuss current issues or ask any questions.

Contributors

Want to get involved? Please join the Raphtory Slack group and speak with us on how you could pitch in!

License

Raphtory is licensed under the terms of the Apache License (check out our LICENSE file).