1
1
# Graphina
2
2
3
3
[ ![ Tests] ( https://img.shields.io/github/actions/workflow/status/habedi/graphina/tests.yml?label=tests&style=popout-square&logo=github )] ( https://github.com/habedi/graphina/actions/workflows/tests.yml )
4
+ [ ![ Lint] ( https://img.shields.io/github/actions/workflow/status/habedi/graphina/lint.yml?label=lint&style=popout-square&logo=github )] ( https://github.com/habedi/graphina/actions/workflows/lint.yml )
4
5
[ ![ Code Coverage] ( https://img.shields.io/codecov/c/github/habedi/graphina?style=popout-square&logo=codecov )] ( https://codecov.io/gh/habedi/graphina )
5
6
[ ![ CodeFactor] ( https://img.shields.io/codefactor/grade/github/habedi/graphina?style=popout-square&logo=codefactor )] ( https://www.codefactor.io/repository/github/habedi/graphina )
6
7
[ ![ Crates.io] ( https://img.shields.io/crates/v/graphina.svg?style=popout-square&color=fc8d62&logo=rust )] ( https://crates.io/crates/graphina )
@@ -23,35 +24,19 @@ set of ready-to-use algorithms for graph analysis and mining.
23
24
24
25
## Features
25
26
26
- * ** Graphs** :
27
- - [x] Directed and undirected graphs
28
- - [x] Weighted and unweighted graphs
29
-
30
- * ** IO** :
31
- - [x] Edge list
32
- - [x] Adjacency list
33
- - [ ] GraphML
34
- - [ ] GML
35
- - [ ] JSON
36
-
37
- * ** Generators** :
38
- - [x] Erdős–Rényi Graph
39
- - [x] Complete Graph
40
- - [x] Bipartite Graph
41
- - [x] Star Graph
42
- - [x] Cycle Graph
43
- - [x] Watts–Strogatz Graph
44
- - [x] Barabási–Albert Graph
45
-
46
- * ** Algorithms** :
47
- - [ ] Graph traversal
48
- - [ ] Shortest paths
49
- - [ ] Minimum spanning tree
50
- - [ ] Connected components
51
- - [ ] Clustering, partitioning, and community detection
52
- - [ ] Centrality
53
- - [ ] Graph matching
54
- - [ ] Graph visualization
27
+ | Module | Feature | Status | Notes |
28
+ | ------------------------------------------------| -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| ----------------------------------------------| ---------------------------------------------|
29
+ | [ ** Types** ] ( src/graph/types.rs ) | - ✓ Directed and undirected graphs<br >- ✓ Weighted and unweighted graphs | <small >- ☐ Tested<br >- ☐ Benchmarked</small > | Core graph types |
30
+ | [ ** Exceptions** ] ( src/graph/exceptions.rs ) | - ✓ Base exceptions (` GraphinaException ` )<br >- ✓ Serious error (` GraphinaError ` )<br >- ✓ Pointless concept (` GraphinaPointlessConcept ` )<br >- ✓ Algorithm error (` GraphinaAlgorithmError ` )<br >- ✓ Unfeasible (` GraphinaUnfeasible ` )<br >- ✓ No path (` GraphinaNoPath ` )<br >- ✓ No cycle (` GraphinaNoCycle ` )<br >- ✓ Node not found (` NodeNotFound ` )<br >- ✓ Has a cycle (` HasACycle ` )<br >- ✓ Unbounded (` GraphinaUnbounded ` )<br >- ✓ Not implemented (` GraphinaNotImplemented ` )<br >- ✓ Ambiguous solution (` AmbiguousSolution ` )<br >- ✓ Exceeded max iterations (` ExceededMaxIterations ` )<br >- ✓ Power iteration failed convergence (` PowerIterationFailedConvergence ` ) | <small >- ☐ Tested<br >- ☐ Benchmarked</small > | Custom error types for Graphina |
31
+ | [ ** IO** ] ( src/graph/io.rs ) | - ✓ Edge list<br >- ✓ Adjacency list<br >- ☐ GraphML<br >- ☐ GML<br >- ☐ JSON | <small >- ☐ Tested<br >- ☐ Benchmarked</small > | I/O routines for reading/writing graph data |
32
+ | [ ** Generators** ] ( src/graph/generators.rs ) | - ✓ Erdős–Rényi graph<br >- ✓ Watts–Strogatz graph<br >- ✓ Barabási–Albert graph<br >- ✓ Complete graph<br >- ✓ Bipartite graph<br >- ✓ Star graph<br >- ✓ Cycle graph | <small >- ☐ Tested<br >- ☐ Benchmarked</small > | Generators for random and structured graphs |
33
+ | [ ** Traversal** ] ( src/traversal/ ) | - ✓ Breadth-first search<br >- ✓ Depth-first search<br >- ✓ Iterative deepening DFS<br >- ✓ Bidirectional search | <small >- ☐ Tested<br >- ☐ Benchmarked</small > | Graph traversal algorithms |
34
+ | [ ** Paths** ] ( src/paths/ ) | - ✓ Dijkstra's algorithm<br >- ✓ Bellman–Ford algorithm<br >- ✓ Floyd–Warshall algorithm<br >- ✓ Johnson's algorithm<br >- ✓ A* search algorithm<br >- ✓ Iterative deepening A* search algorithm | <small >- ☐ Tested<br >- ☐ Benchmarked</small > | Shortest paths algorithms |
35
+ | [ ** Centrality** ] ( src/centrality/algorithms.rs ) | - ✓ Degree centrality<br >- ✓ Closeness centrality<br >- ✓ Betweenness centrality<br >- ✓ Eigenvector centrality<br >- ✓ PageRank<br >- ✓ Katz centrality<br >- ✓ Harmonic centrality<br >- ✓ Local/global reaching centrality<br >- ✓ VoteRank<br >- ✓ Laplacian centrality | <small >- ☐ Tested<br >- ☐ Benchmarked</small > | Centrality measures |
36
+ | [ ** Links** ] ( src/links/algorithms.rs ) | - ✓ Resource Allocation Index<br >- ✓ Jaccard Coefficient<br >- ✓ Adamic–Adar Index<br >- ✓ Preferential Attachment<br >- ✓ CN Soundarajan–Hopcroft<br >- ✓ RA Index Soundarajan–Hopcroft<br >- ✓ Within–Inter Cluster Ratio<br >- ✓ Common Neighbor Centrality | <small >- ☐ Tested<br >- ☐ Benchmarked</small > | Link prediction algorithms |
37
+ | [ ** MST** ] ( src/mst/algorithms.rs ) | - ✓ Borůvka’s algorithm<br >- ✓ Kruskal’s algorithm<br >- ✓ Prim’s algorithm | <small >- ☐ Tested<br >- ☐ Benchmarked</small > | Minimum spanning tree algorithms |
38
+ | [ ** Community** ] ( src/community/algorithms.rs ) | - ✓ Label Propagation<br >- ✓ Louvain Method<br >- ✓ Girvan–Newman algorithm<br >- ✓ Spectral Clustering<br >- ✓ Personalized PageRank<br >- ✓ Infomap<br >- ✓ Connected components | <small >- ☐ Tested<br >- ☐ Benchmarked</small > | Community detection and clustering |
39
+ | ** Remaining Modules** | - ☐ Graph matching<br >- ☐ Graph visualization | <small >Planned</small > | Future work: additional graph algorithms |
55
40
56
41
## Installation
57
42
0 commit comments