depend 0.4.0

Dependency Tool for D

To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:

Dependency Tool for D

Build Status

The depend tool helps to visualize import dependencies. Moreover, it allows to check them against a UML model of target dependencies.


Using the depend tool on the code of the popular vibe.d repository gives an overview of the package dependencies: package diagram


Use dub to build the depend tool:

dub build --build=release

Run the depend tool like you run dmd (most arguments are just passed to dmd).

For example, run the depend tool on its own code:

depend --compiler dmd src/*.d

Consider switching to module dependencies instead of package dependencies:

depend --detail src/*.d

The output is a package diagram in the PlantUML language:

package check {}
package deps {}
package graph {}
package imports {}
package main {}
package model {}
package settings {}
package uml {}

check ..> model
deps ..> model
graph ..> model
imports ..> model
main ..> check
main ..> deps
main ..> graph
main ..> imports
main ..> settings
main ..> uml
settings ..> model
uml ..> model

Copy and paste the output to the PlantUML Server for visualization:

package diagram

For checking, specify the target dependencies in the PlantUML language. For example, create a text file target.uml.

Use the depend tool to check the import dependencies against the target dependencies:

depend --detail src/*.d --check target.uml

Then, the check will complain about violations:

error: unintended dependency main -> deps
error: unintended dependency main -> graph
error: unintended dependency main -> uml
error: unintended dependency uml -> graph

You will also get warnings about cyclic dependencies.

Alternatively, run dmd up front and pass the extracted dependencies explicitly:

dmd -deps=dependencies ...
depend --deps dependencies

  • Mario Kröplin
0.4.0 2021-Jan-05
0.3.1 2019-Aug-19
0.3.0 2019-Aug-18
0.2.0 2018-Jul-06
0.1.0 2018-Jun-03
Show all 12 versions
Download Stats:
  • 0 downloads today

  • 0 downloads this week

  • 1 downloads this month

  • 168 downloads total

Short URL: