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
Pricing
Price wrong?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.