We're on a mission to standardize message-based communication and increase interoperability of the different systems out there.
JVM-friendly bindings for AsyncAPI. It allows you to read or write specifications for your asynchronous API through code
Hints:
- If you are working with AsyncAPI specification in JetBrains IDE, check out our AsyncAPI - IDEA plugin
- If you are working with AsyncAPI specification in VSCode, check out our AsyncAPI - VSCode plugin
| Version | Implementation status |
|---|---|
| 2.0.0 | ✅ |
| 2.1.0 | ❌ |
| 2.2.0 | ❌ |
| 2.3.0 | ❌ |
| 2.4.0 | ❌ |
| 2.5.0 | ❌ |
| 2.6.0 | ✅ |
| 3.0.0 | ✅ |
| Protocol | Versions |
|---|---|
| AsyncAPI Multi Format Schema | 3.0.0 |
| AsyncAPI Schema | unified version |
| Avro Schema | 1.9.0, 1.9.1, 1.9.2, 1.10.0, 1.10.1, 1.10.2, 1.11.0, 1.11.1 |
| Json Schema | Draft-07 |
| OpenAPI Schema | 3.0.0, 3.0.1, 3.0.2, 3.0.3 |
| RAML 1.0 Schema | ❌ |
| Protocol Buffers | ❌ |
| Protocol | Versions |
|---|---|
| AMQP | 0.1.0, 0.2.0, 0.3.0 |
| AMQP1 | 0.1.0 |
| Anypoint MQ | 0.1.0 |
| Google Cloud Pub/Sub | 0.1.0, 0.2.0 |
| HTTP | 0.1.0, 0.2.0, 0.3.0, 0.4.0, 0.5.0 |
| IBM MQ | 0.1.0 |
| JMS | 0.0.1 |
| Apache Kafka | 0.1.0, 0.3.0, 0.4.0, 0.5.0 |
| Mercure | 0.1.0 |
| MQTT | 0.1.0, 0.2.0 |
| MQTT 5 | 0.1.0, 0.2.0 |
| NATS | 0.1.0 |
| Apache Pulsar | 0.1.0 |
| Redis | 0.1.0 |
| Amazon SNS | 0.1.0 |
| Solace | 0.1.0, 0.2.0, 0.3.0, 0.4.0 |
| Amazon SQS | 0.1.0, 0.2.0 |
| STOMP | 0.1.0 |
| WebSockets | 0.1.0 |
| Security Schema | Implementation status |
|---|---|
| API Key | ✅ |
| Asymmetric Encryption | ✅ |
| GSS-API | ✅ |
| HTTP | ✅ |
| HTTP API Key | ✅ |
| OAuth2 | ✅ |
| OpenID Connect | ✅ |
| Plain | ✅ |
| SCRAM-SHA-256 | ✅ |
| SCRAM-SHA-512 | ✅ |
| Symmetric Encryption | ✅ |
| User Password | ✅ |
- Springwolf Core - Automated documentation for async APIs built with Spring Boot
- AsyncAPI Quarkus - Generates AsyncAPIRegistry and configuration classes for Quarkus
- Specmatic - Converts AsyncAPI specifications into executable contracts
- adeo-kafka-request-reply-asyncapi.yml
- anyof-asyncapi.yml
- application-headers-asyncapi.yml
- correlation-id-asyncapi.yml
- gitter-streaming-asyncapi.yml
- kraken-websocket-request-reply-message-filter-in-reply-asyncapi.yml
- kraken-websocket-request-reply-multiple-channels-asyncapi.yml
- mercure-asyncapi.yml
- not-asyncapi.yml
- oneof-asyncapi.yml
- operation-security-asyncapi.yml
- rpc-client-asyncapi.yml
- rpc-server-asyncapi.yml
- simple-asyncapi.yml
- slack-rtm-asyncapi.yml
- streetlights-kafka-asyncapi.yml
- streetlights-mqtt-asyncapi.yml
- streetlights-operation-security-asyncapi.yml
- websocket-gemini-asyncapi.yml
- JDK 1.8
- Maven 3+
If you are using SDKMAN! use env to prepare environment
sdk env installEach build is GPG signed. To avoid this, and to not configure GPG locally, you can use this command:
mvn clean install -Dgpg.skip- Request credentials for one of AsyncAPI's account on Sonatype Jira, which is synced with Sonatype nexus
- Generate pgp key if it was not generated yet
- Create
/Users/{userName}/.m2/settings.xml
<settings>
<profiles>
<profile>
<id>ossrh</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<gpg.keyname>GPG key name</gpg.keyname>
<gpg.executable>gpg</gpg.executable>
<gpg.passphrase>GPG passphrase for selected key</gpg.passphrase>
<gpg.homedir>/Users/{userName}/.gnupg</gpg.homedir>
</properties>
</profile>
</profiles>
<servers>
<server>
<id>ossrh</id>
<username>Jira username</username>
<password>Jira password</password>
</server>
</servers>
</settings>Release
mvn clean deploy -P release references: