Skip to content

Releases: Pometry/Raphtory

v0.4.3

06 Jul 19:00
087a5f0
Compare
Choose a tag to compare

Release v0.4.3

v0.4.2

28 Jun 13:37
791788d
Compare
Choose a tag to compare

Release v0.4.2

v0.4.1

21 Jun 12:36
8a67f3c
Compare
Choose a tag to compare

Release v0.4.1

v0.4.0

07 Jun 17:15
c60ef7b
Compare
Choose a tag to compare

Release v0.4.0

v0.3.2

25 May 16:11
1aed920
Compare
Choose a tag to compare

Release v0.3.2

v0.3.1

10 May 13:00
91ae71c
Compare
Choose a tag to compare

Raphtory 0.3.0 Release - In Rust we trust 🦀

Thanks to a whole bunch of feedback on our Python alpha, over the last 6 months Raphtory has been through its second full make over with a total rewrite of the core engine in Rust! There are WAY too many changes to list here, but below you can see a couple of highlights.

If you would like to give this new version a go, you can check out the docs as well as our examples - available in both Python and Rust. Good places to start are the Jupyter notebooks for the Reddit snap dataset and Enron emails.

Highlights 🏆

Revamped API

The first thing you will notice about the new Raphtory is that the API is A LOT more friendly. The example notebooks above show this off nicely, but as a snippet this is how you could grab Gandalf from our Lord of the Rings Graph and plot his degree every 1000 time increments:

timestamps   = []
degree       = []
for gandalf in g.vertex("Gandalf").rolling(window=1000):
    timestamps.append(gandalf.latest_time())
    degree.append(gandalf.degree())     
            
sns.set_context()
ax = plt.gca()
plt.xticks(rotation=45)
ax.set_xlabel("Time")
ax.set_ylabel("Interactions")
sns.lineplot(x = timestamps, y = degree,ax=ax) 
image

Performance 📈

  • The memory usage of Rust is over an order of magnitude less than Scala, with one test graph (~11 million nodes, ~33 million edges) previously requiring ~120GB of Ram now only needing 7GB! This means that datasets which required spinning up a EC2 instance or cluster can now easily be run on your laptop 💪🏻
  • Similarly, complex algorithms like Temporal Triadic Motifs run in seconds instead of hours - even when running locally instead of on a beefy box 🍖
  • Querying for specific vertices/edges runs 1000x faster and can be done directly on the graph via the new APIs instead of having to write a full algorithm.

Python 🐍

  • Raphtory can now be easily installed with all dependencies via pip install raphtory.
  • Via PyO3 Raphtory can now be run and called directly in python without secretly running a Java Runtime Environment in the background 🥷. This also means it now works perfectly with all other python libraries!
  • The vast majority of the heavy lifting is done in Rust, meaning you get all the ease of Python, with very little slow down!

Whats next ⏭️

We are currently tinkering away with several parts of the new APIs, adding more helper functions, and expanding the algorithmic suite. However, alongside this we have some larger pieces of work in the pipeline:

  • We are building a GraphQL extension to Raphtory, codename flux-capacitor, alongside the functionality for compiling Raphtory to WASM - making it possible to interact with Raphtory through Javascript/web UIs.
  • We are working on out-of-core analysis, allowing Raphtory to work on Graphs many times the size of the memory of the machine it is running on.
  • Finally, we are running a suite of standard benchmarks on this new version to give some concrete comparable numbers to other Graph systems.

If you have an other suggestions please do let us know via Github issues, discussions or on Slack!

Full Changelog: v0.2.0...v0.3.1

raphtory-scala-0.2.2

24 Mar 14:32
Compare
Choose a tag to compare
v0.2.2

bumped to v0.2.2

raphtory-scala-0.2.1

13 Feb 13:40
Compare
Choose a tag to compare

Release v0.2.1

raphtory-scala-0.2.0

07 Feb 12:08
Compare
Choose a tag to compare
v0.2.0

bumped to v0.2.0

raphtory-scala-0.1.6

19 Jan 15:33
Compare
Choose a tag to compare
v0.1.6

bumped to v0.1.6