A fast, extensible multi-language dependency extraction tool for code analysis and visualization.
Depends is a fast, comprehensive code dependency analysis tool that extracts syntactical relations among source code entities like files and methods from multiple programming languages. It solves the problem of fragmented, vendor-specific dependency extraction by providing a unified, extensible framework for language-independent analysis.
Software engineers, researchers, and tool vendors who need to perform code visualization, program comprehension, architecture analysis, or build higher-level analysis tools on top of dependency data.
Developers choose Depends because it's an open-source, multi-language alternative to commercial tools, offering a flexible and extensible framework that avoids vendor lock-in and supports community collaboration.
Depends is a fast, comprehensive code dependency analysis tool
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports dependency extraction from Java, C/C++, Ruby, Python, and Maven projects, providing a unified framework for cross-language analysis as highlighted in the key features.
Built with a graceful kernel for easy extension to new programming languages, encouraging community contributions, as mentioned in the 'How to contribute' section.
Exports to JSON, XML, Excel, DOT, and PlantUML, enabling seamless integration with visualization tools like GraphViz and PlantUML, detailed in the parameters.
Allows analysis at file, method, or folder levels, offering flexibility for different analytical needs, as specified in the granularity parameter.
For languages like C/C++ and Ruby, users must manually specify include paths, which can be error-prone and time-consuming, especially in complex projects, as warned in the 'Remember to specify include paths' section.
Currently supports only a handful of languages; adding new ones requires significant effort, as evidenced by the weeks spent to support Ruby, leaving gaps for popular languages.
Excel export is capped at 256 elements, making it unsuitable for medium to large codebases where Excel-based analysis is desired, as noted in the output limitations.
Depends is an open-source alternative to the following products:
Understand is a static code analysis tool that helps developers visualize, measure, and manage complex source code for various programming languages.
Structure 101 is a software architecture analysis and visualization tool that helps developers understand and manage code structure and dependencies.
Lattix is a software architecture analysis and management tool that helps visualize, analyze, and manage dependencies in complex codebases.