Dependency Visualizer for Knit
This project is a dependency visualizer built with Java and Graphviz. It parses a sample knit.json file sourced from the demo Knit repository and generates a visual graph of architectural dependencies, making it easier to understand and analyze system structure.
Features
- Users can input a JSON input file containing the dependency information by specifying the file path.
- Users can view a dependency graph generated by parsing the JSON input.
- Users can filter the graph by type of dependencies between the classes.
Development Tools: Java (JDK), IntelliJ IDEA
APIs Used: Graphviz API (via Java bindings)
Libraries Used: JSON parsing library (e.g., Jackson), Graphviz Java wrapper
Assets Used: Sample knit.json file from the demo Knit GitHub repository
Problem Statement
Develop a visualization tool for TikTok's open-source dependency injection framework, Knit, that helps developers better understand, analyze, and optimize their projects' dependency structures. This tool should offer clear, intuitive visual representations of dependency graphs, highlight potential issues such as circular or unnecessary dependencies, and provide suggestions for performance or structural improvements. Knit delivers excellent performance through its unique bytecode manipulation approach. Without visibility, issues may go undetected, leading to tightly coupled code, inefficiencies, and slower onboarding for new contributors. By building a dedicated visualization tool, this track aims to make dependency relationships in Knit-based projects more transparent and actionable, ultimately improving code quality, maintainability, and developer productivity. We welcome you to leverage AI to help you to understand the DI definition or the principle of the Knit framework and build your visualization tools (e.g. build with Trae)
Log in or sign up for Devpost to join the conversation.