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 install
Each 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: