// developer tooling for the JVM
Concurrency bugs,
forced out of hiding.
Deversity builds and maintains
async-test-lib, a JUnit 5
extension that stress-tests code under maximum thread contention. A single
@AsyncTest annotation runs a test body on N threads for M rounds, forces
the threads to collide, and reports what more than a hundred concurrency detectors
observed.
@AsyncTest(threads = 8, rounds = 500)
void concurrentTransfers() {
account.transfer(from, to, 100);
}
✗ race conditionlost update on Account.balance, round 231
✗ unsafe publicationAccount visible before fully constructed
✓ contention8 threads × 500 rounds, 100+ detectors watching
What it catches
Race conditions
Lost updates and check-then-act windows that only open under real contention.
Deadlocks
Lock cycles and stuck threads, caught in the test run instead of in production.
Missed signals
Waits and notifies that never meet, condition waits that sleep forever.
Unsafe publication
Objects visible to other threads before they are fully constructed.
And more, from a suite of more than a hundred detectors.
How it works
Annotate
Add @AsyncTest(threads = N, rounds = M) to a JUnit 5 test body.
Collide
The extension runs the body on N threads for M rounds and forces the threads to collide at the worst possible moments.
Read the report
The detectors report race conditions, deadlocks, missed signals, unsafe publication, and more.
How licensing works
Non-commercial
Free
async-test-lib is free for non-commercial use under the PolyForm Noncommercial License 1.0.0. No license key needed.
Commercial
Annual license, priced by team size
A license covers every developer on your company email domain. There are no per-seat keys.
See pricingAlso from Deversity
llm-fw
Local prompt injection firewall
A firewall for LLM traffic that runs on your own machine. It intercepts every request your tools make to OpenAI, Anthropic, Gemini and a dozen other providers, blocks prompt injection and jailbreak attempts in real time, redacts leaked credentials, and forwards clean traffic untouched. No cloud calls and no telemetry.
Free for non-commercial use under the same PolyForm Noncommercial licence.
See llm-fwVibeTags
AI guardrails for Java, compiled from your code
A compile-time annotation processor that generates the guardrail files AI coding
tools read — CLAUDE.md, .cursorrules,
copilot-instructions.md and more — from annotations in your Java or
Kotlin source. Annotate once; every opted-in tool is regenerated on the next
compile. Zero runtime overhead.
Free and open source under the MIT license.
See VibeTagsContact
Deversity AB (Org.nr 559303-2278), a company registered in Sweden.
Email: peter.isberg@deversity.se