An open API service indexing awesome lists of open source software.

https://github.com/severeoverfl0w/vizns

Visualize the relationships between your namespaces and dependencies
https://github.com/severeoverfl0w/vizns

clojure

Last synced: 2 months ago
JSON representation

Visualize the relationships between your namespaces and dependencies

Awesome Lists containing this project

README

        

= 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.png -f png
$ 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[]