Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ewohltman/graphdot
Visualize Go module dependencies in Graphviz DOT format
https://github.com/ewohltman/graphdot
dependency-graph dependency-management go golang
Last synced: 2 months ago
JSON representation
Visualize Go module dependencies in Graphviz DOT format
- Host: GitHub
- URL: https://github.com/ewohltman/graphdot
- Owner: ewohltman
- License: mit
- Created: 2019-04-23T02:52:08.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-01-24T18:00:03.000Z (about 5 years ago)
- Last Synced: 2024-07-30T18:03:44.772Z (6 months ago)
- Topics: dependency-graph, dependency-management, go, golang
- Language: Go
- Homepage:
- Size: 72.3 KB
- Stars: 53
- Watchers: 4
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# graphdot
**Visualize Go module dependencies in Graphviz DOT format**
----
## Installation
Install `graphdot` using go get:`go get -u github.com/ewohltman/graphdot`
## Usage
Run `graphdot` in the directory of any project using Go modules with a `go.mod`
file to print out a dependency graph in [Graphviz](https://www.graphviz.org/)
DOT format.The output can be piped directly into `dot` to generate a
[PNG](https://en.wikipedia.org/wiki/Portable_Network_Graphics) image file:`graphdot | dot -T png -o dependency_graph.png`
For large graphs with many nodes of dependencies, you may want to generate an
[SVG](https://en.wikipedia.org/wiki/Scalable_Vector_Graphics) file to allow you
to zoom in with high-fidelity and save disk space instead:`graphdot | dot -Gdpi=0 -T svg -o dependency_graph.svg`
If you like a more UML'ish style, you can use the provided graph properties
from `uml.gprops`:`graphdot -graph-props uml.gprops | dot -T svg -o dependency_graph.svg`
## Example
![graphdot](https://raw.githubusercontent.com/ewohltman/graphdot/master/dependency_graph.png)
## Contributing to the project
Contributions are very welcome, however please follow the guidelines below:
* Open an issue describing the bug or enhancement
* Fork the `develop` branch and make your changes
* Try to match current naming conventions as closely as possible
* Create a Pull Request with your changes against the `develop` branch