/vizns

Visualize the relationships between your namespaces and dependencies

Primary LanguageClojure

Vizns

Visualize the relationship between namespaces and their dependencies.

Usage

Add vizns as an alias in your ~/.clojure/deps.edn so it’s available in any project:

{:aliases
 {:user/vizns
  {:deps {io.dominic/vizns {:git/url "https://github.com/SevereOverfl0w/vizns.git"
                            :sha "85b375763b038c33f2290b9383cde3eebcf6bc8d"}}
   :main-opts ["-m" "io.dominic.vizns.core"]}}}

Run in your project

Produce a navigable folder of SVGs
$ clj -A:user/vizns navigate
Produce a deps-graph.dot file
$ clj -A:user/vizns
Tip
You can upload the .dot file to https://edotor.net/ to view without having graphviz installed.
Produce a deps-graph image directly
$ clj -A:user/vizns single -o deps-graph.png -f png
$ clj -A:user/vizns single -o deps-graph.svg -f svg
View graph without saving
$ clj -A:user/vizns single --show

Output information

Dependencies can be colored 3 colors:

Green

You’re doing the right thing, carry on.

Red

You’re using this dependency, but you’re relying on it being brought in transitively. This means you’re relying on an implementation detail of a library. You should add this dependency to your deps.edn

Grey

You’re not using this dependency (NOTE: There’s a lot of false positives here, especially around java)

Example

(Example sourced from camelot)

Navigation of Camelot (Click nodes to filter)

camelot example