#directed-graph #graph #vertices #structure #numbers #hyperedge

hypergraph

Hypergraph is data structure library to create a directed hypergraph in which an hyperedge can join any number of vertices

35 releases (stable)

new 2.2.0 Nov 19, 2024
2.1.2 Aug 25, 2023
2.1.1 May 18, 2023
2.1.0 Mar 11, 2023
0.1.3 Nov 15, 2020

#118 in Data structures

Download history 70/week @ 2024-07-31 1/week @ 2024-08-21 35/week @ 2024-09-18 52/week @ 2024-09-25 75/week @ 2024-11-13

78 downloads per month

MIT license

89KB
2K SLoC

graph


GitHub Workflow Status Crates.io docs.rs

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 Cargo.toml (replace 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