Skip to content

Repository files navigation

🩺 WireDoctor

Maven Central CI Tests Tests License Awesome Java

"Your bean graph has a story. WireDoctor reads it."

WireDoctor is a runtime diagnostic and architectural analysis tool for Spring Boot. Add one dependency β€” it hooks into the real, resolved ApplicationContext at startup and turns it into an interactive report, honest advice, and CI gates. Zero-intrusion, zero-dashboard-server, pure insights.

WireDoctor report β€” a tour of every tab

A real run against start.spring.io (Boot 4.1.x, 429 beans, 436 edges) on WireDoctor 1.1.4 β€” the cycle, the ghosts and the timings in the report are all genuinely from that app. View the full docs β†’

β–Ά Open this exact report live in your browser β€” no install needed.


Quick start

Add the dependency β€” that's it. WireDoctor runs at startup, writes wiredoctor-report.html + wiredoctor-report.json, and prints a diagnostic summary to your logs.

Maven:

<dependency>
    <groupId>io.github.ddsha441981</groupId>
    <artifactId>wiredoctor-autoconfigure</artifactId>
    <version>1.1.4</version>
</dependency>

Gradle:

implementation 'io.github.ddsha441981:wiredoctor-autoconfigure:1.1.4'

Want CI gates? Capture a baseline once, commit it, arm the gates:

./mvnw spring-boot:run \
  -Dspring-boot.run.arguments="--wiredoctor.baseline=wiredoctor-baseline.json --wiredoctor.baseline-write=true"
git add wiredoctor-baseline.json && git commit -m "chore: WireDoctor baseline"
# application-ci.properties
wiredoctor.baseline=wiredoctor-baseline.json
wiredoctor.fail-on=new-cycle,startup-time,slow-bean

Common knobs (wiredoctor.scan-packages, thresholds, output path, production kill-switch wiredoctor.enabled=false) are in the configuration reference.


Supported Versions

The full test suite runs against this matrix in CI (compat.yml); the table below reflects what is actually green:

Spring Boot Java 17 Java 21 Java 25
2.7.x βœ… βœ… βœ…
3.3.x βœ… βœ… βœ…
3.5.x βœ… βœ… βœ…
4.0.x βœ… βœ… βœ…

Notes:

  • Floor is Boot 2.4: startup timings need BufferingApplicationStartup, introduced in Boot 2.4. Lines older than 2.7 are not CI-verified.
  • Boot lines between the tested ones (3.0–3.2, 3.4) are expected to work since WireDoctor only uses stable APIs, but only the listed lines carry a CI guarantee.
  • WireDoctor itself is compiled for Java 17 bytecode.
  • WebFlux (reactive, Netty): verified since v0.8.0 β€” RouterFunction, WebHandler, WebSocketHandler and WebExceptionHandler beans are recognized as entry points (never flagged as ghosts).

πŸ“š Full documentation

Guide What it covers
Report tour Every tab of the HTML console, explained with real screenshots
Configuration reference Every property, grouped by feature, with defaults
CI gating Fail your PR on a new bean cycle β€” the full workflow
Performance gates Startup-time and slow-bean gates, thresholds, noise tolerance
Upgrade Guard Catching silent autoconfiguration changes across Boot upgrades
Ghost Detector Passive candidates + opt-in first-touch tracking, and their trust postures
Thread Distribution Per-thread bean map with donut chart (v1.1.0)
Startup Time Trend trendHistory in baseline + trend chart with verdict bands (v1.1.3)
Security posture What the reports expose, offline-only network behavior
Known Limitations Honest heuristics and what the tool cannot guarantee

Pre-generated sample reports (from real apps, including start.spring.io) are in sample/ β€” or view the start.spring.io report live without cloning anything.


🀝 Contributing

Contributions are welcome β€” bug reports, docs, tests, and features. See CONTRIBUTING.md for build/test conventions and the zero-intrusion design posture. New here? Look for issues labelled good first issue.

Maintained by Deendayal Kumawat Β· LinkedIn Β· deendayal_kumawat@hotmail.com

πŸ“„ License

Dual-licensed under MIT OR Apache-2.0 β€” pick whichever suits your project.

About

🩺 Zero-intrusion runtime diagnostic and architectural analyzer for Spring Boot. Automatically detects cyclic dependencies, proxy overheads, and startup bottlenecks with an interactive physics-based HTML dashboard.

Topics

Resources

Code of conduct

Contributing

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages