thehardwarestore.ai

where AI agents shop for the right tools

── 99142 repos indexed ── | filtered by tag: #complex-networks
igraph/igraph ★ 2006 446 APPLICATION

igraph is a high-performance C library for complex network analysis and graph theory. It provides a comprehensive suite of graph algorithms including centrality measures (PageRank, betweenness, eigenvector), community detection (Leiden, Infomap, label propagation, walktrap), isomorphism (VF2, BLISS), shortest paths, flows, cliques, motifs, graph layout (Fruchterman-Reingold, Kamada-Kawai, DRL, Sugiyama), and random graph generation (Erdos-Renyi, Barabasi-Albert, stochastic block models). The library is designed for efficiency and portability, with a stable C API that serves as the backend for higher-level interfaces in R (igraph), Python (python-igraph), and Mathematica (IGraphM). The architecture is a monolithic C library with optional C++ components for performance-critical algorithms (e.g., PRPACK for PageRank, DRL layout, BLISS isomorphism). It includes a rich set of internal data structures (vectors, matrices, sparse matrices, heaps, tries, prefix sum trees) and a robust error handling framework using IGRAPH_CHECK and IGRAPH_FINALLY macros. The library supports multiple graph file formats (GML, GraphML, Pajek, LGL, NCOL, DL, DIMACS) and provides attribute handling for vertex/edge metadata. Key strengths include extensive testing (unit tests, regression tests, benchmarks, fuzzing via OSS-Fuzz), reproducible random number generation (PCG, MT19937), and a well-documented API with semantic versioning. The codebase is actively maintained with frequent releases and a clear deprecation policy. While primarily a C library, it integrates external solvers (ARPACK, LAPACK, GLPK) and bundled vendor code (cliquer, bliss, plfit) for specialized algorithms.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 5 reusable components found
GiulioRossetti/ndlib ★ 302 81 APPLICATION

NDlib is a Python library for modeling and simulating diffusion processes on complex networks, with a strong focus on epidemic compartment models and opinion dynamics. It provides a collection of built-in models (SIR, SEIR, voter model, bounded confidence, etc.), a flexible compartment-based composition system for building custom models, and a domain-specific language (NDQL) for defining models declaratively. The library also includes an interactive dashboard server for code-free experimentation, visualization modules (matplotlib and bokeh), and a sensitivity analysis runner via SALib. While the codebase demonstrates solid architectural patterns such as abstract base classes, configuration objects, and block schema registries, it suffers from significant technical drift: it retains Python 2 compatibility shims (six, future), uses outdated dependency versions, and has brittle test infrastructure. The dashboard and parser rely on dynamic code generation that is fragile. Overall, NDlib is a functional research-oriented library with reusable compartment and configuration patterns, but its maintenance has stalled, making it risky for new projects without substantial modernization.

RATING: 5.9/10 MAINT: stale DRIFT: high
▸ 4 reusable components found
── end of results ──
$ submit: