Erasmus is a Jakarta Validation 3.1 (Bean Validation) implementation in pure Java 25: zero third-party dependency (only the jakarta.validation-api spec jar), strict Java Modules, and — like every Vidocq brick — compile-time code generation planned where others reflect at runtime.
|
Erasmus is in development and not released yet — there is no artifact on Maven Central. The engine, 21 of the spec’s 22 built-in constraints ( |
Origin of the name
Erasmus of Rotterdam (1466–1536), the humanist who spent his life critically validating texts against their sources — collating manuscripts, hunting inconsistencies, publishing corrected editions. See the Wikipedia article.
That is what a Bean Validation engine does: check values against declared constraints, report every violation precisely, and never alter the text it validates. The name breaks with the French-figures convention of the other bricks for a good reason — the man predates them all, and nobody validated harder.
At a glance
Implemented spec |
|
Repo |
|
Java |
25 (LTS) |
Java modules |
|
Runtime dependencies |
None beyond |
Status |
in development — engine and built-in constraints working, not released |
Official TCK |
planned (M8) — see TCK status |
Three identifying traits
-
Zero third-party dependency — the Jakarta Validation spec jar only. No Hibernate Validator, no Apache BVal, no external Expression Language implementation: message interpolation runs on a minimal, purpose-built EL subset.
-
Standard bootstrap —
Validation.buildDefaultValidatorFactory()discovers Erasmus through the spec’sValidationProviderservice. No Erasmus-specific API to learn. -
Codegen-first roadmap — today the metadata model is built reflectively; milestone M5 introduces APT-generated per-bean constraint dispatchers, with differential testing between the reflective and generated paths.
Position in the ecosystem
Erasmus is a foundational-style brick: it depends on no other Vidocq module. Planned integrations go the other way — CDI-managed Validator beans and @ValidateOnExecution method validation through Vauban (M7), automatic ConstraintViolationException mapping to HTTP 400 in Cassini (M9), and a Vidocq Runtime extension (M11).
Quick links
|
Performance numbers live in BENCH.md (JMH harness against Hibernate Validator — no numbers recorded yet). None appear inline in this page. |