CXXGraph Library : Header-Only C++ Library for Graph Representation and Algorithms

Valentsea
Total
0
Shares



CXXGraph

Header-Only C++ Library for Graph Representation and Algorithms

Valentsea

Valentsea Valentsea

DOI

DOI

codecov
CodeFactor

GitHub license GitHub release

LGTM Alerts
LGTM Grade

Generic badge Generic badge Generic badge

Generic badge Generic badge

Join the chat at https://gitter.im/CXXGraph-Community/community

Share on Tweet

Introduction

CXXGraph is a small library, header only, that manages the Graph and it’s algorithms in C++. In other words a “Comprehensive C++ Graph Library”
An alternative to Boost Graph Library (BGL).

Hacktoberfest 2k22

Hi Developers, we are participating in Hacktoberfest 2022!

We are Looking for…

We are looking for:

  • Site Developer for the development of the CXXGraph site ( for the moment on GitHub Page );
  • Developers and Committers, also at first experience, we will guide you step by step to the open-source world!

If you are interested, please contact us at zigrazor@gmail.com or contribute to this project. We are waiting for you!

Roadmap

Completed Description Date of Completition
✔️ First Optimization Apr 4, 2022
✔️ Add Benchmark for all algorithms Oct 5, 2022
✔️ Code Optimization Oct 5, 2022
✔️ Release 0.4.0 Oct 7, 2022
📝 “Const” Code Review #155 TBD

CXXGraph is an Header-Only library, that manages the Graph and it’s algorithms in C++. In other words a “Comprehensive C++ Graph Library”.



Goal of the library

The main goal of the library is to provide a user-friendly interface, and a simple startup ( for this reason I opted for Header-Only ).
On the other hand, the target is to create a comprehensive C++ library, with a wide variety of algorithms ( the aims is to have all the known and new algorithms in the field of graph ).
As said before, the library want to create a collaborative and inclusive group, where the passionate of Graph Theory, Graph Algorithm, and so on can share they knowledge and research.



List of Feature already present

  • BFS
  • DFS
  • Best First Search
  • Dijkstra
  • Dial
  • Prim’s Algorithm
  • Cycle Detection
  • Bellman-Ford
  • Floyd Warshall
  • Kruskal Algorithm
  • Borůvka’s Algorithm
  • Graph Slicing based on connectivity
  • Ford-Fulkerson Algorithm
  • Kosaraju’s Algorithm
  • Kahn’s Algorithm

Other than these algorithms the library provides also some partition algorithms:

  • Vertex-Cut
  • Edge Balanced Vertex-Cut
  • Greedy Vertex-Cut
  • HDRF
  • EBV
  • WB-Libra



Future

The following is the expected Roadmap for the library ( obviously it can be changed in the future, and adapted to the request of users of the library )

Completed Description Date of Completition
✔️ First Optimization Apr 4, 2022
✔️ Add Benchmark for all algorithms Oct 5, 2022
✔️ Code Optimization Oct 5, 2022
✔️ Release 0.4.0 Oct 7, 2022
📝 “Const” Code Review #155 TBD
📝 Release 0.5.0 TBD
📝 Official Site Release TBD
📝 Reduction of Code Issue of Static Analysis TBD
📝 First Stable Release 1.0.0 TBD
📝 Markov Chain Algorithm #107 TBD
📝 Release 1.0.1 TBD
📝 FP-GraphMiner algorithm #105 TBD
📝 Release 1.0.2 TBD
📝 Tarjan’s algorithm #103 TBD
📝 Release 1.0.3 TBD
✔️ Graph Topological Sort #104 Nov 3, 2022
📝 Release 1.1.0 TBD
📝 Custom export and import #19 TBD
📝 Input & Output file format #172 TBD
📝 Release 1.2.0 TBD
✔️ Multi-Thread implementation of BFS #121 Dec 6, 2022
📝 Release 1.2.1 TBD
Thread Safe implementations of Boruvka, Prim & Kruskal algorithm #128 Oct 5, 2022
📝 Release 1.3.0 TBD
📝 Edge-Cut Partition Algorithm #183 TBD
📝 Release 1.3.1 TBD
✔️ WB-Libra Parttition Algorithm #178 Nov 25, 2022
📝 Release 1.4.0 TBD
📝 Introduce Hypergraph #122 TBD
📝 Stable Release 2.0.0 TBD



Why publish my project?

About 2 years ago I start this project with the idea to develop somenthing new, or to better say something that can help the developer in some cases or simple that does not have a “good” implementation in this language (C++).
In fact the goal of the library is the portability, simplicity of the interface, and the certainty of the correct execution of the algorithms.
Before this project start I search for somenthing like this, but I didn’t find anything similar, so I had decided to start this project.

Now i need help to improve the library and to test it, so I need some C++ developers, someone that can create a good site for the library( also in Github Pages is good ) and some users for test the project.
Obviously any other partecipation is welcome!

If you have 5 minutes to get in touch, click on the project or write to me at zigrazor@gmail.com

Thank you so much!

Total
0
Shares
Valentsea

Free tool to view, convert, compare JSON powered by ChatGPT

As a developer, I always wondered why most Online tools are not having a simplified UI Design and…

You May Also Like