ArchUnit logo

ArchUnit

Java architecture test library for asserting packaging, layering, cyclic-dependency and naming rules in plain JUnit tests.

-

Our Verdict

The cleanest way to turn architecture decisions into executable guardrails on the JVM.

Pros

  • Enforces layering and package rules as real JUnit tests
  • Catches cyclic dependencies before they rot the codebase
  • Readable fluent DSL, reviewable alongside code
  • No runtime overhead, pure static bytecode analysis

Cons

  • Java/JVM only, no Kotlin-specific idioms
  • Rules can get verbose for nuanced architectures
  • Steep ramp for teams new to architecture testing
  • Slow on very large monorepos without filtering
Best for: Java teams protecting hexagonal or layered architectures from gradual decay Not for: Small projects or non-JVM stacks where lint rules already suffice

When to Use ArchUnit

Good fit if you need

  • Enforce layer dependencies in hexagonal architecture
  • Prevent cyclic package dependencies in Java monorepo
  • Assert naming conventions for services and repositories
  • Fail CI builds when architecture rules are violated

Lock-in Assessment

Low 5/5
Lock-in Score
5/5

ArchUnit Pricing

Pricing Model
free
Free Tier
Yes
Entry Price
Enterprise Available
No
Transparency Score

Beta — estimates may differ from actual pricing

1,000
1001K10K100K1M

Estimated Monthly Cost

$25

Estimated Annual Cost

$300

Estimates are approximate and may not reflect current pricing. Always check the official pricing page.

Project Health

B

Health Score

3.7k 334
Bus Factor

7

Last Commit

2 days

Release Freq

108d

Open Issues

182

Issue Response

4d

License

Apache-2.0

Last checked: 2026-04-21

Community Discussion

Comments powered by Giscus (GitHub Discussions). You need a GitHub account to comment.