Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yamafaktory/hypergraph
Hypergraph is data structure library to create a directed hypergraph in which a hyperedge can join any number of vertices.
https://github.com/yamafaktory/hypergraph
data data-science data-structure data-structures hypergraph hypergraphs rust rust-lang rustlang
Last synced: 6 days ago
JSON representation
Hypergraph is data structure library to create a directed hypergraph in which a hyperedge can join any number of vertices.
- Host: GitHub
- URL: https://github.com/yamafaktory/hypergraph
- Owner: yamafaktory
- License: mit
- Created: 2020-10-07T21:17:13.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-11-19T10:41:35.000Z (23 days ago)
- Last Synced: 2024-11-29T16:08:14.942Z (13 days ago)
- Topics: data, data-science, data-structure, data-structures, hypergraph, hypergraphs, rust, rust-lang, rustlang
- Language: Rust
- Homepage:
- Size: 335 KB
- Stars: 287
- Watchers: 4
- Forks: 11
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE-MIT
Awesome Lists containing this project
- awesome-rust - yamafaktory/hypergraph
- awesome-rust-cn - yamafaktory/hypergraph
- awesome-rust - yamafaktory/hypergraph - Hypergraph is a data structure library to generate directed hypergraphs. [![ci](https://github.com/yamafaktory/hypergraph/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/yamafaktory/hypergraph/actions/workflows/ci.yml) (Libraries / Data structures)
- fucking-awesome-rust - yamafaktory/hypergraph - Hypergraph is a data structure library to generate directed hypergraphs. [![ci](https://github.com/yamafaktory/hypergraph/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/yamafaktory/hypergraph/actions/workflows/ci.yml) (Libraries / Data structures)
- fucking-awesome-rust - yamafaktory/hypergraph - Hypergraph is a data structure library to generate directed hypergraphs. [![ci](https://github.com/yamafaktory/hypergraph/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/yamafaktory/hypergraph/actions/workflows/ci.yml) (Libraries / Data structures)
README
![graph](hypergraph.svg)
---
[](https://github.com/yamafaktory/hypergraph/actions/workflows/ci.yml) [](https://crates.io/crates/hypergraph/versions?sort=semver) [](https://docs.rs/hypergraph)
Hypergraph is a data structure library to generate **directed** [hypergraphs](https://en.wikipedia.org/wiki/Hypergraph).
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](https://crates.io/crates/hypergraph)):
```toml
[dependencies]
hypergraph = "curent_version"
```## ⚡️ Usage
Please read the [documentation](https://docs.rs/hypergraph) to get started.