# Graphina
[](https://github.com/habedi/graphina/actions/workflows/tests.yml)
[](https://codecov.io/gh/habedi/graphina)
[](https://www.codefactor.io/repository/github/habedi/graphina)
[](https://crates.io/crates/graphina)
[](https://docs.rs/graphina)
[](https://crates.io/crates/graphina)
[](https://github.com/rust-lang/rust/releases/tag/1.83.0)
[](docs)
[](https://github.com/habedi/graphina)
Graphina is a high-level graph data science library for Rust.
It provides the common data structures and algorithms used for analyzing the graphs of real-world networks like social,
transportation, and biological networks.
## Features
* **Graphs**:
- [x] Directed and undirected graphs
- [x] Weighted and unweighted graphs
* **IO**:
- [x] Edge list (CSV)
- [ ] Adjacency list (TXT)
- [ ] GraphML
- [ ] GML
- [ ] JSON
* **Generators**:
- [x] Erdős–Rényi Graph (Random)
- [x] Complete Graph
- [x] Bipartite Graph
- [x] Star Graph
- [x] Cycle Graph
- [x] Watts–Strogatz Graph (Small-World)
- [x] Barabási–Albert Graph (Scale-Free)
* **Algorithms**:
- [ ] Graph traversal
- [ ] Shortest paths
- [ ] Minimum spanning tree
- [ ] Connected components
- [ ] Clustering, partitioning, and community detection
- [ ] Centrality
- [ ] Graph matching
- [ ] Graph visualization
## Installation
```
cargo add graphina
```
*Graphina requires Rust 1.83 or later.*
## Documentation
See the [docs](docs/README.md) for the latest documentation.
## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to make a contribution.
## License
This project is licensed under either of these:
* MIT License ([LICENSE-MIT](LICENSE-MIT))
* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE))