asyncapi / jasyncapi

/jay-sync-api/ is a Java code-first tool for AsyncAPI specification
Apache License 2.0
68 stars 23 forks source link
asyncapi code-first java-library kotlin-library

AsyncAPI Logo

Building the future of event-driven architectures

We're on a mission to standardize message-based communication and increase interoperability of the different systems out there.

Version

Overview

JVM-friendly bindings for AsyncAPI. It allows you to read or write specifications for your asynchronous API through code

Hints:

Implemented AsyncAPI versions (3/8)

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

Implemented AsyncAPI schemas (5/7)

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

Implemented AsyncAPI bindings (19/19)

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

Implemented AsyncAPI Security Schemas (12/12)

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

Known consumers:

Known open specifications to check compatibility with:

Contributors section

Build

Prerequisites

  1. JDK 1.8
  2. Maven 3+

If you are using SDKMAN! use env to prepare environment

sdk env install

Install locally

Each build is GPG signed. To avoid this, and to not configure GPG locally, you can use this command:

 mvn clean install -Dgpg.skip

Publish new release

Prerequisites

  1. Request credentials for one of AsyncAPI's account on Sonatype Jira, which is synced with Sonatype nexus
  2. Generate pgp key if it was not generated yet
  3. 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: