Owner:
Jacek Sztajnke
Asyncwright brings contract-first AsyncAPI validation and model-based generation to Gradle builds and CI. It validates a defined subset of AsyncAPI 3.0.0 YAML and JSON documents, resolves local JSON Pointer references, and produces JSON and text diagnostic reports. A Groovy/Kotlin DSL configures specifications and project rules; validation integrates with the check task so contract errors fail the build. The Java extension API lets teams supply custom validation rules and generators that work with a typed model. Generation runs through explicitly invoked tasks using user-supplied generators. Validation and generation tasks support the Gradle build cache and configuration cache, and run in classloader-isolated Gradle workers without requiring Node.js. Custom extensions must declare their inputs and produce deterministic outputs for correct caching. The supported subset excludes external references, traits, YAML aliases and non-default schema formats. See the project documentation for setup, examples and the full validation scope.
Version 0.1.0 (latest)
Created 23 October 2026.
Asyncwright brings contract-first AsyncAPI validation and model-based generation to Gradle builds and CI. It validates a defined subset of AsyncAPI 3.0.0 YAML and JSON documents, resolves local JSON Pointer references, and produces JSON and text diagnostic reports. A Groovy/Kotlin DSL configures specifications and project rules; validation integrates with the check task so contract errors fail the build. The Java extension API lets teams supply custom validation rules and generators that work with a typed model. Generation runs through explicitly invoked tasks using user-supplied generators. Validation and generation tasks support the Gradle build cache and configuration cache, and run in classloader-isolated Gradle workers without requiring Node.js. Custom extensions must declare their inputs and produce deterministic outputs for correct caching. The supported subset excludes external references, traits, YAML aliases and non-default schema formats. See the project documentation for setup, examples and the full validation scope.
Add this plugin to your build using the plugins DSL:
plugins {
id("io.github.sjacek.asyncwright") version "0.1.0"
}
See also:
-
Adding the plugin to build logic for usage in precompiled script plugins.
See the relevant documentation for more information.
Add this plugin as a dependency to
<convention-plugins-build>/build.gradle(.kts):dependencies { implementation("io.github.sjacek.asyncwright:io.github.sjacek.asyncwright.gradle.plugin:0.1.0") }It can then be applied in the precompiled script plugin:plugins { id("io.github.sjacek.asyncwright") } -
The legacy method of plugin application.
See the relevant documentation for more information.buildscript { repositories { gradlePluginPortal() } dependencies { classpath("io.github.sjacek.asyncwright:io.github.sjacek.asyncwright.gradle.plugin:0.1.0") } } apply(plugin = "io.github.sjacek.asyncwright") - Applying plugins to all subprojects .