A multi-language static call graph generator that parses source code to visualize function dependencies across 20+ programming languages.
callGraph is a static analysis tool that generates visual call graphs from source code by parsing function definitions and calls. It helps developers quickly understand code structure and dependencies across multiple programming languages without requiring complex setup or compilation. The tool is particularly useful for analyzing legacy codebases where documentation is sparse or architecture is unclear.
Developers and software maintainers working with multi-language codebases, especially those dealing with legacy scripts who need to understand function dependencies quickly. It's also valuable for code reviewers and architects analyzing system design.
Developers choose callGraph because it offers lightweight, language-agnostic call graph generation without the overhead of full parsers or compilers. Its practical approach works on real-world scripts spanning tens of thousands of lines, providing immediate visual insights where traditional tools might struggle with complex syntax.
A multi-language tool which parses source code for function definitions and calls
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses regex-based detection to parse over 20 languages including Python, Ruby, and Swift, making it versatile for mixed codebases without heavy parsers.
Allows specifying start functions, ignoring helpers via regex, and outputting to multiple formats like PNG, SVG, and PDF, enabling tailored visualizations.
Specifically aids in unraveling Perl and TCL scripts by identifying global variable usage, as noted in the README, which is valuable for maintenance tasks.
Can generate simplified source files containing only functions in the graph, helping developers focus on relevant parts of large legacy codebases.
Relies on simple line-by-line regexes that may miss nested or dynamic calls, requiring consistent formatting and potentially linting for reliable results, as admitted in the README.
Explicitly excludes support for C/C++/Java due to complex syntax, restricting use in many mainstream enterprise or system programming contexts.
Requires GraphViz and Perl libraries to be installed separately, adding setup complexity compared to self-contained or containerized tools.