I needed a way to generate a graph of module dependencies for Elixir applications for an upcoming talk I'm giving. This tool generates that structured data for me so I can investigate and make pretty graphs!
A module dependency, for this purpose, is any module that is include
d, use
d,
or has a function called. You can check out the tests for a brief example that
should clear things up.
Sure, why not! It's a very narrow library that I'm mostly have as open sourced so the code is available for inspection by people who see the talk I'm giving that will feature the data generated by this tool.
If you really want to check out the dependency graph for your Elixir
application, go ahead and clone this repo. Then, in run.exs
you can insert
the path to whatever files you want to analyze in the string there. Then run the
app using mix run run.exs
. You'll want to have Graphviz already installed on
your machine if you want to see the pretty graph.
If you want to do really deep analysis of your graphs, you can use
Gephi. The .gv
files output by this program can easily
be loaded into that program.
Also, I've only tested this on OSX, so Linux and Windows may have some funkiness.
No, it most certainly is not. Tests are sparse, documentation is lacking, and the code itself has a ton of duplication. It is, however, a working application without any dependencies.
No, it will not. If you're interested in developing this, feel free to fork this and take it in whichever direction you see fit! This fits my needs for now, and at the moment I'm too busy to commit to maintaining it.