Visualize call graphs of Go programs using interactive Graphviz-based diagrams.
go-callvis is a development tool that generates visual call graphs for Go programs, helping developers understand code structure and relationships. It provides both interactive web-based exploration and static image output, making it especially valuable for navigating large or unfamiliar codebases.
Go developers working on large, complex codebases or those trying to understand unfamiliar Go projects, such as when onboarding to a new codebase or analyzing dependencies.
Developers choose go-callvis for its interactive viewer that allows clickable navigation through call graphs, combined with powerful filtering and grouping options to focus on specific packages or types, providing a more intuitive way to analyze code relationships than static diagrams alone.
Visualize call graph of a Go program using Graphviz
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a clickable, browser-based interface for navigating call graphs, enabling easy exploration of package relationships without regenerating static images each time.
Offers options to focus on specific packages, group by package or type, and filter by import paths, allowing targeted analysis of complex codebases as shown in the usage examples.
Uses Go's pointer analysis to construct precise call graphs, with flags like '-nostd' and '-nointer' to omit standard library or unexported calls for cleaner visuals.
Supports both interactive web views and static images in SVG, PNG, and other formats, with layout control via Graphviz integration for documentation or presentations.
Requires Graphviz to be installed separately for static image output, adding setup complexity and potential cross-platform compatibility issues.
Call graphs are generated from a precomputed analysis pass, so code changes require re-running the tool, limiting real-time use during dynamic development.
Advanced interactive features are split into a separate project (goexplorer), indicating core enhancements might be slower or confusing for users seeking all-in-one tooling.