Features

Features #

AsyncAPI 2.x is not supported

Protocols #

Here are the protocols that are supported by go-asyncapi for now:

AsyncAPI support #

The marked items below are supported by the go-asyncapi tool (partially or fully), unmarked items are in the roadmap.

For the reference, see AsyncAPI specification

AsyncAPI Entities #

  • AsyncAPI object
  • Identifier object ($id)
  • Info object
    • Contact object
    • License object
  • Default Content Type
  • Servers object
    • Server object
      • Server Variable object
      • Server Bindings object
  • Channels object
    • Channel object
      • Channel Bindings object
  • Messages object
    • Message object
      • Message Example object
      • Message Bindings object
  • Operations object
    • Operation object
      • Operation Trait object
      • Operation Reply object
        • Operation Reply Address object
      • Operation Bindings object
  • Parameters object
    • Parameter object
  • Tags object
    • Tag object
  • External Documentation object
  • Components object
  • Security Scheme object
  • OAuth Flows object
    • OAuth Flow object
  • Correlation ID object

Other #

JSONSchema #

AsyncAPI uses superset of JSON Schema Specification Draft 07 for message payloads and other schema definitions. See AsyncAPI spec.

The following JSONSchema features are supported by go-asyncapi:

  • type: see below
  • additionalItems
  • additionalProperties
  • allOf
  • anyOf
  • const
  • contains
  • default
  • definitions
  • deprecated
  • description
  • discriminator
  • else
  • enum
  • examples
  • exclusiveMaximum
  • exclusiveMinimum
  • externalDocs
  • format: see below
  • if
  • items
  • maxItems
  • maxLength
  • maxProperties
  • maximum
  • minItems
  • minLength
  • minProperties
  • minimum
  • multipleOf
  • not
  • oneOf
  • pattern
  • patternProperties
  • properties
  • propertyNames
  • readOnly
  • required
  • then
  • title
  • uniqueItems

Types and formats #

JSONSchema formats are extensible by user, see more.

The following object types and formats are supported by go-asyncapi out-of-the-box:

  • object: struct, map[T1]T2, etc., depending on the schema definition
  • array: []T, [x]T, depending on the schema definition
  • boolean: bool
  • string: string
  • integer: int
    • int8: int8
    • int16: int16
    • int32: int32
    • int64: int64
    • uint: uint
    • uint8: uint8
    • uint16: uint16
    • uint32: uint32
    • uint64: uint64
  • number: float64
  • null: any

Content types #

Content types are extensible by user, see more.

The following content types (MIME types) are supported by go-asyncapi out-of-the-box:

Security schemes #

Security schemes are extensible by user, see more.

The following security scheme types are supported by go-asyncapi:

  • userPassword
  • apiKey
  • X509
  • symmetricEncryption
  • asymmetricEncryption
  • httpApiKey
  • http
  • oauth2
  • openIdConnect
  • plain
  • scramSha256
  • scramSha512
  • gssapi

Server definitions generation #

The go-asyncapi tool supports the generation for the following engines: