Raphtory

Latest version: v0.13.1

Safety actively analyzes 682457 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 6 of 7

0.3.2

- [x] Publish to crates.io
- [x] Publish to PyPi
- [x] Make Tag
- [x] Release to Github
- Auto-generated by [create-pull-request] triggered by release action [1]
[1]: https://github.com/peter-evans/create-pull-request

0.3.1

0.3.0

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](https://docs.raphtory.com/en/v0.3.1/) as well as our [examples](https://github.com/Pometry/Raphtory/tree/master/examples) - available in both Python and Rust. Good places to start are the Jupyter notebooks for the [Reddit](https://github.com/Pometry/Raphtory/blob/master/examples/py/reddit/demo.ipynb) snap dataset and [Enron](https://github.com/Pometry/Raphtory/blob/master/examples/py/enron/enron.ipynb) 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:

python
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)

<img width="580" alt="image" src="https://github.com/Pometry/Raphtory/assets/6665739/974d06a4-a432-4654-8ace-984ec73ff582">


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](pyo3.rs) 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](https://github.com/Pometry/flux-capacitor), alongside the functionality for compiling Raphtory to [WASM](https://webassembly.org) - 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](https://github.com/Pometry/Raphtory/issues), [discussions](https://github.com/Pometry/Raphtory/discussions) or on [Slack](https://join.slack.com/t/raphtory/shared_invite/zt-xbebws9j-VgPIFRleJFJBwmpf81tvxA)!

**Full Changelog**: https://github.com/Pometry/Raphtory/compare/v0.2.0...v0.3.1

0.2.2

0.2.1

- [x] Publish to crates.io
- [x] Publish to PyPi
- [x] Make Tag
- [x] Release to Github
- Auto-generated by [create-pull-request] triggered by release action [1]
[1]: https://github.com/peter-evans/create-pull-request

0.2.0

API Changes
* Changed the Graph Builder API such that instead of having to define a graph update case class and pass it to the sendUpdate() function, each update type has its only function. These are then overloaded to cleanly handle properties and types.

Testing
* Created the Raphtory Component which runs into its own JVM allowing the deployment of Raphtory 'clusters' locally for better testing.
* Created an all commands test generator which runs 300k updates of all types across a distributed deployment.
* Added a StateTest algorithm which extracts the full structural and property histories from a flattening.
* Added functionality to compare versions of Raphtory
* Requires running the all commands test, then querying the new state test and connected components across the history of the resulting graph.
* The results of the prior version and new version can then be compared by a new `ResultsCompare` class which pulls the data from mongo and reports on if it is correct and if a speed up has been obtained.
* These can all be found in `com.raphtory.dev.allcommands`

Internal Improvements
* Fixed the Watermarking functionality.
* All router workers now synchronise fully for bounded datasets.
* All ingestion workers now report the correct safe time.
* Safe times are now aggregated fully in the new Watermark Manager.
* Fixed bug in Router Workers where they were sharing an outbound queue object.
* Fully refactored the messages for Update ingestion and synchronisation.
* Extracted all message parsing logic from Entity Storage and moved to Ingestion worker -- both cleaned up addressing poor function names.

Analysis
* Added a variety of new algorithms -- experimenting with Community Detection, temporal mutli-layer LPA and temporal motif counting.
* These can be found in `com.raphtory.algorithms`

* Entity Visitor Property access has been expanded, but is to be fully redone in the next version.

Extra Bits
* Fully updated readme and documentation.
* Large clean up of the overall project, removing old readme information/pictures, PDF's and other elements which can be moved to the examples repository.
* Moved the src code to be top level.
* Added multi-line Spout, to be merged into standard file spout - can be found in `com.raphtory.spouts`
* Added a dev folder for alpha algorithms and example Raphtory pipelines for testing.

Thanks wuliaososhunhun imanehaf dorely103 narnolddd richardclegg felixcdr jamesalford Haaroon Alnaimi-


raphtory-akka-0.1
Initial Raphtory release now that it is in a useable state to ingest and build the graph. This is a test release for current users and will soon be superseded by v0.2 which will include an updated analysis model.

Page 6 of 7

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.