README.adoc
January 31, 2024 · View on GitHub
= 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:
[source,clojure]
{: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
[source,bash] .Produce a navigable folder of SVGs
$ clj -A:user/vizns navigate
[source,bash] .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.
[source,bash] .Produce a deps-graph image directly
clj -A:user/vizns single -o deps-graph.svg -f svg
[source,bash] .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 link:https://gitlab.com/camelot-project/camelot[camelot])
link:https://dominic.io/vizns/camelot/root.svg[Navigation of Camelot] (Click nodes to filter)
image::camelot-example.svg[]