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
78 downloads per month
89KB
2K
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 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