### 34 releases (stable)

2.1.2 | Aug 25, 2023 |
---|---|

2.1.1 | May 18, 2023 |

2.1.0 | Mar 11, 2023 |

1.3.9 | Dec 18, 2022 |

0.1.3 | Nov 15, 2020 |

#**243** in Data structures

**573** downloads per month

**MIT**license

87KB

1.5K
SLoC

Hypergraph is a data structure library to generate **directed** hypergraphs.

A hypergraph is a generalization of a graph in which a hyperedge can join any number of vertices.

## 📣 Goal

This library aims at providing the necessary methods for modeling complex, multiway (non-pairwise) relational data found in complex networks. One of the main advantages of using a hypergraph model over a graph one is to provide a more flexible and natural framework to represent entities and their relationships (e.g. Alice uses some social network, shares some data to Bob, who shares it to Carol, etc).

## 🎁 Features

This library enables you to represent:

**non-simple**hypergraphs with two or more hyperedges - with different weights - containing the exact same set of vertices**self-loops**- i.e., hyperedges containing vertices directed to themselves one or more times**unaries**- i.e., hyperedges containing a unique vertex

## ⚗️ Implementation

- 100% safe Rust
- Proper error handling
- Stable indexes assigned for each hyperedge and each vertex
- Parallelism (with Rayon)

## 🛠️ Installation

Add this to your

(replace `Cargo .toml`

*current_version*with the latest version of the library):

`[``dependencies``]`
`hypergraph ``=` `"`curent_version`"`

## ⚡️ Usage

Please read the documentation to get started.

#### Dependencies

~4MB

~75K SLoC