Home Upgrade Search Memberlist Extras Hacker Tools Award Goals Help Wiki Contact

C# 

Rivers - A graphing library for .NET

Description :
Rivers is a light-weight graphing library written in C#. It contains a model for directed and undirected graphs, as well as a whole bunch of standard algorithms to analyse graphs. Rivers is released under the MIT license.

The project was inspired by networkx, a well known python module for graph analysis.

Screenshot :
[Image: eurCQLF.png]
Click to enlarge

Features:
  • Easy to use graph class modelled using adjacency lists for each node. This has the following advantages:
    • Optimised for quick insertion of nodes and edges.
    • Minimal memory footprint.
    • Efficient for sparse graphs.
  • Support for directed as well as undirected graphs. By default, graphs are directed.
  • Various built-in node traversal and search algorithms (including breadth first, depth first and more).
  • Built-in dominator analysis. Useful for control flow graph analysis.
    • Construct dominator trees from CFGs.
    • Get dominance frontier.
  • Dot file import/export support.

Download, tutorial and issue tracker:
https://github.com/Washi1337/Rivers

Cheers,
https://github.com/Washi1337

"I'll tell you this UDP joke, and I don't care if you will get it or not."
HF is dead. Sad to see it go.
Great post nonetheless.
Make graph's class disposable if it already isn't, and if it already is you should definitely use the fact its disposable.
Cool project nonetheless
(Jun 26, 2018 06:16 AM)Closed User Wrote:  Make graph's class disposable if it already isn't, and if it already is you should definitely use the fact its disposable.
Cool project nonetheless

What would help implementing the IDisposable interface here? I am not allocating or using any unmanaged resources or something. The garbage collector takes care of all the allocation I might do.
https://github.com/Washi1337

"I'll tell you this UDP joke, and I don't care if you will get it or not."
How fast is the Rendering?
How much of a load does it take on memory..?!
(Jun 26, 2018 07:15 AM)Infirmary Wrote:  How fast is the Rendering?
How much of a load does it take on memory..?!

It doesn't do any of the rendering. If you look closely in the screenshot, it is a webbrowser navigated to the website http://webgraphviz.com/. It is merely there to show that it also supports importing and exporting using the dot file format. The purpose of this library is more for modelling and traversing graphs.

As for memory usage, I do not have the exact numbers, but since the library makes use of adjacency lists to store the edges, memory usage scales linearly with the number of edges and vertices (O(|V|+|E|), V being the vertices and E being the edges.).
https://github.com/Washi1337

"I'll tell you this UDP joke, and I don't care if you will get it or not."
So I added support for undirected graphs, as well as some graph generators that allow for easier generation of graphs. I hope to get multi graphs soon as well :)

https://github.com/Washi1337/Rivers

[Image: E4rdE8v.png]
https://github.com/Washi1337

"I'll tell you this UDP joke, and I don't care if you will get it or not."
Damn, this look's amazing, I'll be using it, thanks for the share!
wow... it's amazing... will look into it as it will help me learn more...
BTC - bc1q3efew3yzfwhdz290dafykaw0a2w56g2j69g2c6
ETH - 0xf1c873217032468990D3313da6509D1b813c4671
USDT - 0xf1c873217032468990D3313da6509D1b813c4671
PP - [email protected]


Possibly Related Threads...
Thread / Author Replies Views Last Post
[C] by phisnNov 11, 2020 08:44 AM 1 165 Nov 11, 2020 08:44 AM
Last Post: HFDone
[Python] by KerieelFeb 13, 2019 01:40 AM 1 111 Feb 13, 2019 01:40 AM
Last Post: enmafia2
[.NET] by FhackDec 25, 2017 07:14 PM 8 280 Dec 25, 2017 07:14 PM
Last Post: zarlo5899