The Open Source Community Tooling Built on AsyncAPI

Continuing my dive into the open source tooling around leading API specification I am looking at AsyncAPI. The event-driven and message-driven API specification is sitll fairly new so the community isn't nearly the size of OpenAPI or Swagger, but there is plenty of insights to mine from what is being built. Here is the list I have compiled so far when it comes to AsyncAPI, something I've grouped, but will keep adding to and evolving as I continue this work.

Specification

  • asyncapi - (forks: 77) (stars: 1139) (watchers: 1139) - the asyncapi specification allows you to create machine-readable definitions of your asynchronous apis.

Documentation

  • widdershins - (forks: 208) (stars: 665) (watchers: 665) - openapi / swagger, asyncapi & semoasa definitions to slate / shins compatible markdown
  • generator - (forks: 54) (stars: 113) (watchers: 113) - use your asyncapi definition to generate literally anything. markdown documentation, node.js code, html documentation, anything!
  • api2html - (forks: 18) (stars: 93) (watchers: 93) - a cli tool to transform swagger/openapi/asyncapi docs to beautiful html pages via shins/widdershins.
  • github action - (forks: 0) (stars: 24) (watchers: 24) - github action to deploy your api documentation on bump
  • docgen - (forks: 11) (stars: 17) (watchers: 17) - asyncapi documentation generator. deprecated in favour of
  • swagger4kafka - (forks: 4) (stars: 17) (watchers: 17) - automated documentation for kafka consumers built with spring (with @kafkalistener)
  • saunter - (forks: 7) (stars: 15) (watchers: 15) - saunter is an asyncapi documentation generator for dotnet.
  • scribano - (forks: 0) (stars: 5) (watchers: 5) - automatically build asyncapi documentation for your rabbitmq messages

Definitions

  • slack api specs - (forks: 36) (stars: 122) (watchers: 122) - open api specifications for platform products by slack

Filters

  • openapi filter - (forks: 14) (stars: 32) (watchers: 32) - filter internal paths, operations, parameters, schemas etc from openapi/swagger/asyncapi definitions

Code Generation

  • asyncapi react - (forks: 13) (stars: 23) (watchers: 23) - asyncapi react component
  • node codegen - (forks: 5) (stars: 14) (watchers: 14) - an asyncapi codegen for node.js
  • apicurio data models - (forks: 6) (stars: 11) (watchers: 11) - a library (java and javascript compatible) to implement data models for openapi and asyncapi.
  • asyncapi - (forks: 2) (stars: 5) (watchers: 5) - flogo extensions to support asyncapi
  • java spring cloud stream - (forks: 3) (stars: 4) (watchers: 4) - java spring cloud stream template for the asyncapi generator
  • python paho template - (forks: 2) (stars: 4) (watchers: 4) - python paho template for the asyncapi generator

Topics

  • topic definition - (forks: 5) (stars: 26) (watchers: 26) - asyncapi topic structure definition

CI/CD

  • github action - (forks: 0) (stars: 24) (watchers: 24) - github action to deploy your api documentation on bump
  • spectral action - (forks: 5) (stars: 19) (watchers: 19) - github action wrapper for spectral - a json/yaml/openapi/asyncapi/etc linter with custom rule support.
  • github action for generat - (forks: 1) (stars: 10) (watchers: 10) - github action to generate all the things from your asyncapi document using the asyncapi generator
  • asyncapi github action - (forks: 1) (stars: 5) (watchers: 5) - github action to validate if asyncapi schema file is valid or not.

Parsers

  • parser go - (forks: 6) (stars: 18) (watchers: 18) - it parses asyncapi documents.
  • parser js - (forks: 9) (stars: 7) (watchers: 7) - asyncapi parser for javascript (browser-compatible too).

Validation

  • asyncapi validator - (forks: 2) (stars: 17) (watchers: 17) - message validator for kafka/rabbitmq/anything through asyncapi schema
  • vertx asyncapi contract - (forks: 0) (stars: 10) (watchers: 10) - vert.x asyncapi contract provides a validation layer when publishing messages in vert.x eventbus
  • check_api - (forks: 2) (stars: 6) (watchers: 6) - a multi-api format validator and gate-keeper tool for the apis.guru api collection

Generator

  • go asyncapi - (forks: 3) (stars: 14) (watchers: 14) - asyncapi spec from go code
  • documentation component - (forks: 7) (stars: 6) (watchers: 6) - react component for rendering markdown, openapi, asyncapi and odata
  • java spring template - (forks: 5) (stars: 6) (watchers: 6) - java spring template for the asyncapi generator

Vocabulary

  • asyncapi toolkit - (forks: 4) (stars: 13) (watchers: 13) - repository to host the asyncapi grammar, metamodel, and code generation tools

Converters

  • converter go - (forks: 5) (stars: 12) (watchers: 12) - convert asyncapi documents from older to newer versions with golang
  • converter js - (forks: 4) (stars: 3) (watchers: 3) - convert asyncapi documents from older to newer versions.

Directories

  • asyncapi directory - (forks: 0) (stars: 11) (watchers: 11) - ⇄ directory of asynchronous api specifications in asyncapi format

Bindings

  • bindings - (forks: 9) (stars: 4) (watchers: 4) - asyncapi bindings specifications

IDE

  • vscode spectral - (forks: 2) (stars: 5) (watchers: 5) - visual studio code wrapper for the awesome spectral json/yaml linter with openapi/asyncapi support

Editor

Command Line Interface

  • bump cli - (forks: 1) (stars: 3) (watchers: 3) - bump.sh cli - deploy your openapi & asyncapi documentations from your cii 

The number of GitHub action tools I find interesting. I see many of the patterns emerging in the AsyncAPI community that I have seen in the Swagger and OpenAPI communities. I also see some things that are different because the types of APIs being defined are different. This is one of the open source communities I will definitely be keen on mapping out over time to help me better understand where things are going.