Skip to content
ZigRazor edited this page Mar 18, 2022 · 7 revisions

CXXGraph

DOI

DOI

codecov CodeFactor

GitHub license GitHub release

LGTM Alerts LGTM Grade

Generic badge Generic badge Generic badge

Generic badge Generic badge

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

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!

Install and Uninstall

Install Linux Tarballs

On Unix/Linux system you need to execute the following command to install:

$ sudo tar xjf CXXGraph-{version}.tar.bz2

to uninstall:

$ sudo rm -f /usr/include/Graph.hpp /usr/include/CXXGraph*

Install RPM

On Fedora/CentOS/RedHat system you need to execute the following command to install:

$ sudo rpm -ivh CXXGraph-{version}.noarch.rpm

to uninstall:

$ sudo rpm -e CXXGraph-{version}

Install DEB

On Debian/Ubuntu system you need to execute the following command to install:

$ sudo dpkg -i CXXGraph_{version}.deb

to uninstall:

$ sudo apt-get remove CXXGraph

Install From Source

You can install from source the library using CMake. After the compilation phase, you can use:

$ sudo make install

to install the library.

Classes Explanation

The Classes Explanation can be found in the Doxygen Documentation, in the Classes Section

Requirements

The minimun C++ standard required is C++17 and a G++ compiler version greater than 7.3.0. Are also required OpenSSL library

How to use

The use of the library is very simple, just put the header file where you need!

Example

Work in Progess

Unit-Test Execution

The Unit-Test required the CMake version greater than 3.9 and the google test library.

OpenSSL installation

OpenSSL

Ubuntu/Debian

sudo apt-get install openssl libssl-dev

RedHat/CentOS/RockyLinux/Fedora

yum install openssl-devel

Other System

You can find more information on how to install OpenSSL at this link

Google Test Installation

GoogleTest

git clone https://github.com/google/googletest.git
cd googletest        # Main directory of the cloned repository.
mkdir -p build       # Create a directory to hold the build output.
cd build
cmake ..             # Generate native build scripts for GoogleTest.
make                 # Compile
sudo make install    # Install in /usr/local/ by default

How to Compile Test

From the base directory:

mkdir -p build       # Create a directory to hold the build output.
cd build             # Enter the build folder
cmake ..             # Generate native build scripts for GoogleTest.
make                 # Compile

How to Run Test

After the compilation, you can run the executable that is under the "build" directory with the name "test_exe", with the simple command ./test_exe.

Benchmark Execution

The Benchmark required the CMake version greater than 3.9 and the google test and the google benchmark library.

Google Benchmark Installation

Google Benchmark

# Check out the library.
$ git clone https://github.com/google/benchmark.git
# Benchmark requires Google Test as a dependency. Add the source tree as a subdirectory.
$ git clone https://github.com/google/googletest.git benchmark/googletest
# Go to the library root directory
$ cd benchmark
# Make a build directory to place the build output.
$ cmake -E make_directory "build"
# Generate build system files with cmake.
$ cmake -E chdir "build" cmake -DCMAKE_BUILD_TYPE=Release ../
# or, starting with CMake 3.13, use a simpler form:
# cmake -DCMAKE_BUILD_TYPE=Release -S . -B "build"
# Build the library.
$ cmake --build "build" --config Release
# install library
$ sudo cmake --build "build" --config Release --target install

How to Compile Benchmark

From the base directory:

mkdir -p build             # Create a directory to hold the build output.
cd build                   # Enter the build folder
cmake -DBENCHMARK=ON ..    # Generate native build scripts for GoogleTest.
make                       # Compile

How to Run Benchmark

After the compilation, you can run the executable that is under the "build" directory with the name "benchmark", with the simple command ./benchmark.

Benchmark Results

You can check benchmark result at this link

Packaging

Tarballs

To create tarballs package you need to follow the following steps:

# Enter Packaging Directory
$ cd packaging
# execute the script to generate tarballs
$ ./tarballs.sh

RPM

(Fedora/CentOS/RedHat)

To create rpm package you need to follow the following steps:

# Enter Packaging Directory
$ cd packaging/rpm
# execute the script to generate tarballs
$ ./make_rpm.sh

DEB

(Debian/Ubuntu)

To create deb package you need to follow the following steps:

# Enter Packaging Directory
$ cd packaging/deb
# execute the script to generate tarballs
$ ./make_deb.sh

How to contribute

GitHub contributors If you want give your support you can create a pull request GitHub pull-requests or report an issue GitHub issues. If you want to change the code, or fix issue, or implement a new feature please read our CONTRIBUTING Guide

If you want to disscuss new feature or you have any question or suggestion about library please open a Discussion.

Site

CXXGraph Site

Contact

E-Mail : zigrazor@gmail.com

GitHub Profile Profile views

ZigRazor's github stats

Support

To support me just add Star the project GitHub stars or follow me GitHub followers

To get updated watch the project GitHub watchers

References

We are referenced by:

Credits

Thanks to the community of TheAlgorithms for some algorithms ispiration.

Thanks to GeeksForGeeks for some algorithms inspiration.

Contributors

Thank you to all the people who have already contributed to CXXGraph!

Contributors

Cite Us

If you use this software please follow the CITATION istruction. Thank you!

Hacktoberfest 2k21

We have been participated at Hacktoberfest 2021, thank you to all the contributors!

Other Details

View the Estimated Value of the Project

Author


@ZigRazor

footer