A Go library providing efficient implementations of fundamental graph algorithms and data structures.
Your basic graph is a Go library that provides efficient implementations of fundamental graph algorithms and data structures. It solves problems like pathfinding, connectivity analysis, flow optimization, and topological ordering for applications requiring graph computations. The library supports both concrete graph representations and virtual graph construction through composition and filtering.
Go developers working on applications involving graph theory, network analysis, dependency resolution, or route optimization who need reliable, textbook-style graph algorithms.
Developers choose this library for its frozen API guaranteeing stability, comprehensive coverage of basic graph algorithms, and unique virtual graph capabilities that enable memory-efficient graph construction without storing vertices or edges.
Graph algorithms and data structures
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Includes all essential graph algorithms like BFS, DFS, topological ordering, max flow, and MST, as listed in the README, covering most common computational graph problems.
The frozen API ensures long-term compatibility and reliability, with changes limited to bug fixes and performance enhancements, as stated in the philosophy and roadmap.
Virtual graphs allow construction without storing vertices or edges in memory, enabling handling of large graphs through on-the-fly computation, detailed in the build subpackage.
Mutable graphs use hash maps for constant-time edge operations, and immutable graphs use sorted lists for predictable iteration, providing flexibility for different performance needs.
Graphs have a fixed number of vertices, which restricts applications that need to dynamically add or remove vertices, a design limitation mentioned in the README.
Limited to textbook-style algorithms, so it may not include advanced or niche graph techniques, as per the roadmap's emphasis on basic features.
While memory-efficient, virtual graphs compute edges dynamically, which can introduce performance overhead compared to pre-stored graphs for frequent edge access.
Relies on godoc.org for documentation, which might lack extensive tutorials or examples, making onboarding harder for developers new to graph theory.