Overview

Found an error? Have a suggestion?Edit this page on GitHub

Tools: the AsyncAPI tools ecosystem

Welcome to AsyncAPI Tools! Our Tools section documents the AsyncAPI tools ecosystem.

Remember

Contribute to AsyncAPI Tools

Code isn't the only way to contribute to OSS; Dev Docs are a huge help that benefit the entire OSS ecosystem. At AsyncAPI, we value Doc contributions as much as every other type of contribution. ❤️

To get started as a Docs contributor:

  1. Familiarize yourself with our project's Contribution Guide and our Code of Conduct.
  2. Head over to our AsyncAPI Docs Board.
  3. Pick an issue you would like to contribute to and leave a comment introducing yourself. This is also the perfect place to leave any questions you may have on how to get started.
  4. If there is no work done in that Docs issue yet, feel free to open a PR and get started!

Docs contributor questions

Do you have a documentation contributor question and you're wondering how to tag me into a GitHub discussion or PR? Never fear!

Tag me in your AsyncAPI Doc PRs or GitHub Discussions via my GitHub handle, alequetzalli 🐙.


AsyncAPI Tools List

Would you like to add your tool to this list? Let us know!

Please, before you decide to create a new tool, consider contributing to the existing ones. Thanks!

Code-first tools

The following is a list of tools that generate AsyncAPI documents from your code.

LinkDescriptionLanguage/Framework
Go AsyncAPIIt uses reflection to translate Go structures in JSON Schema definitions and arrange them in AsyncAPI schema. Thanks to @vearutop.Go
SaunterLike Swashbuckle for AsyncAPI. Generates (and hosts) an AsyncAPI schema document from your code. Thanks to @tehmantra.C#/dotnet
Java AsyncAPIThis is a code-first tool for AsyncAPI specificationJava, Kotlin
Kotlin AsyncAPIKotlin DSL based AsyncAPI documentation frameworkKotlin
SpringwolfLike Springfox for AsyncAPI. Auto-generates an AsyncAPI document and a web UI.Java, Spring Boot
KnstEventBusAsyncApi code-first tools for c#. Generates document and view.C#
sttp tapirLibrary for describing HTTP endpoints, and then interpreting them as a server, client, or documentationScala
EventBridge AtlasTool that translates your AWS EventBridge Schemas into an AsyncAPI document and a web UINode
Neuroglia AsyncAPIAutomatically generates and serves AsyncAPI documents based on your code. Includes fluent-builders to create AsyncAPI documents from scratch, and provides a web-based GUI to browse generated documents,C# / .NET 5.0

Code Generators

The following is a list of tools that generate code from an AsyncAPI document; not the other way around.

LinkDescriptionLanguage/Framework
AsyncAPI GeneratorUse your AsyncAPI definition to generate literally anything. Markdown documentation, Node.js code, Java code, HTML documentation, anything! Click here to get a list of the existing templates.Node.js/Hermes, Java/Spring, Markdown, HTML, and more.
Node-RED AsyncAPI pluginUse your AsyncAPI definition to generate and configure Node-RED nodes.Node-RED
MultiAPI GeneratorUse AsyncAPI definition, several of them at the same time, to generate Spring Cloud code with Maven.Java/Spring, Maven
asyncapi_gencppUse an AsyncAPI definition to generate C++ code for serializing and deserializing components and messagesC++

The language you're looking for is not here? You created a new code generator and want to list it here? Let us know!

Converters

The following is a list of tools that do not yet belong to any specific category but are also useful for the community.

LinkDescriptionLanguage/Framework
ConverterConverts old versions of AsyncAPI files into the latest version.JavaScript
Converter GoConverts old versions of AsyncAPI files into the latest version. Thanks to @Kyma team.Go
AsyncAPI-formatFormat an AsyncAPI document by ordering, casing, formatting, and filtering fields.NodeJS

Directories

The following is a list of directories that index public AsyncAPI documents.

LinkDescriptionLanguage/Framework
AsyncAPI-Directory by APIs.guruDirectory of asynchronous API specifications in AsyncAPI format. Thanks to @PermittedSoc.N/A
API Tracker - AsyncAPI specsExplore APIs and companies with public AsyncAPI specifications.N/A

Documentation Generators

The following is a list of tools that generate human-readable documentation from an AsyncAPI document.

LinkDescriptionLanguage/Kind
AsyncAPI GeneratorUse your AsyncAPI definition to generate literally anything. Markdown documentation, Node.js code, HTML documentation, anything! Click here to get a list of the existing templates.CLI / JavaScript
Bump.shOpenAPI 2 & 3 / AsyncAPI 2 documentation generator, with automatic changelog and visual diff.SaaS
WiddershinsOpenAPI 3.0 / Swagger 2.0 / AsyncAPI 1.0 definition to Slate / Shins compatible markdown. Thanks to @PermittedSoc.CLI / JavaScript
CupidA library that focuses on finding and analyzing the relationships between AsyncAPI documents. It outputs a map of the system architecture.JavaScript

UI components

The following is a list of UI components to view AsyncAPI documents.

LinkDescriptionLanguage/Framework
AsyncAPI ReactReact component for rendering documentation from your specification in real-time in the browser. Thanks to @Kyma team.JavaScript/React
api-diff-viewerReact component to view difference between two API specifications. Thanks to @udamir. StorybookJavaScript/React

DSL

Writing YAML by hand is no fun, and maybe you don't want a GUI, so use a Domain Specific Language to write AsyncAPI in your language of choice.

LinkDescriptionLanguage/Kind
BOATSCompile your single AsyncAPI file from multiple YAML files with BOATS and with the help of the template engine Nunjucks, plus a many extra helpers to automate much of the donkey work. The AsyncAPI Parser is used to validate the output.CLI / JavaScript

Frameworks

The following is a list of API/application frameworks that make use of AsyncAPI.

LinkDescriptionLanguage/Kind
AsynctionSocketIO server framework driven by the AsyncAPI specification. Asynction guarantees that your API will work in accordance with its AsyncAPI documentation. Built on top of Flask-SocketIO.Python

GitHub Actions

The following is a list of GitHub Actions that you can use in your workflows:

LinkDescription
AsyncAPI GitHub ActionThis action validates if the AsyncAPI schema file is valid or not.
Generator for AsyncAPI documentsThis action generates whatever you want using your AsyncAPI document. It uses AsyncAPI Generator.
API documentation generation on Bump.shWith this GitHub Action you can automatically generate your API reference (with the changelog and diff) on Bump.sh from any AsyncAPI file.
Automated version bump for AsyncAPI documentsWith this GitHub Action, you can automatically bump the version based on commit messages, which is similar to what semantic-release is for NPM.

Mocking and Testing

The tools below take specification documents as input, then publish fake messages to broker destinations for simulation purposes. They may also check that publisher messages are compliant with schemas.

LinkDescriptionLanguage/Kind
MicrocksMocking and testing platform for API and microservices. Turn your AsyncAPI, OpenAPI contract examples, or Postman collections into ready-to-use mocks. Use examples to simulate and validate received messages according to schema elements.Kubernetes-native, Self-hosted / SaaS, Open Source
VirtualanMocking and testing platform for API and microservices. Allows you to create and setup mocks for OpenAPI and AsyncAPI contracts. Shows how to setup and create AsyncAPI GitHub Reference Examples and OpenAPI GitHub Reference Examples.Kubernetes-native, Self-hosted / SaaS, Open Source
MultiAPI ConverterUse AsyncAPI definition, to generate Spring Cloud Contract producer validation or consumer stubs, using maven.Spring Cloud Contract

Validators

The following is a list of tools that validate AsyncAPI documents.

LinkDescriptionLanguage/Framework
AsyncAPI ParserIt parses and validates AsyncAPI documents.JavaScript
Check-APIIt allows you to validate a local file or remote URL with a single command-line or programmatic invocation. It returns an exitCode of 0 on success and 1 on failure, making it suitable for use in Continuous Integration environments. Thanks to @PermittedSoc.JavaScript
asyncapi-validatorIt allows you to validate the schema of your messages against your AsyncAPI schema definition. You can use it with Kafka, RabbitMQ or any other messaging/queue. Thanks to @waleedashraf.JavaScript
AsyncAPI ParserIt parses and validates AsyncAPI documents.Go
SpectralA command-line linter for AsyncAPI & OpenAPI documents.JavaScript
AMFUnified RAML / OAS / AsyncAPI parser and validator, including lintingScalaJS / JVM and JS support
AsyncAPI Parser WrapperIt parses and validates AsyncAPI documents.Java

Compare tools

The following is a list of tools that compare AsyncAPI documents.

LinkDescriptionLanguage/Framework
diffDiff is a library that compares two AsyncAPI documents and provides information about the differences by pointing out explicitly information like breaking changes.JavaScript
api-smart-diffIt allows you to compare two API documents and classify changes. Supported API specifications: OpenAPI, AsyncAPI, JsonSchema. Thanks to @udamir.JavaScript

Was this helpful?
Help us improve the docs by adding your contribution.
OR
Create Issue on GitHub