https://github.com/asyncapi/generator
Use your AsyncAPI definition to generate literally anything. Markdown documentation, Node.js code, HTML documentation, anything!
https://github.com/asyncapi/generator
asyncapi codegen codegenerator documentation generator get-global-docs-autoupdate get-global-holopin get-global-prettierignore hacktoberfest nodejs
Last synced: about 1 month ago
JSON representation
Use your AsyncAPI definition to generate literally anything. Markdown documentation, Node.js code, HTML documentation, anything!
- Host: GitHub
- URL: https://github.com/asyncapi/generator
- Owner: asyncapi
- License: apache-2.0
- Created: 2018-07-24T13:55:43.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2026-01-14T18:03:02.000Z (about 1 month ago)
- Last Synced: 2026-01-14T21:39:48.417Z (about 1 month ago)
- Topics: asyncapi, codegen, codegenerator, documentation, generator, get-global-docs-autoupdate, get-global-holopin, get-global-prettierignore, hacktoberfest, nodejs
- Language: JavaScript
- Homepage: https://asyncapi.com/docs/tools/generator
- Size: 8.72 MB
- Stars: 991
- Watchers: 19
- Forks: 363
- Open Issues: 40
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
- Notice: NOTICE
Awesome Lists containing this project
- awesome-starts - asyncapi/generator - Use your AsyncAPI definition to generate literally anything. Markdown documentation, Node.js code, HTML documentation, anything! (JavaScript)
- awesome-documentation - Async API Generator - Use AsyncAPI definition to generate literally anything, including Markdown documentation and HTML documentation. (Documentation Types / API Documentation)
README
[](https://www.asyncapi.com/tools/generator)
This is a Monorepo managed using [Turborepo](https://turbo.build/) and contains the following package:
1. [Generator](apps/generator): This is a tool that you can use to generate whatever you want basing on the AsyncAPI specification file as an input.
1. [Hooks](apps/hooks): Hooks are designed to let template developers hook into the template generation process. For example, one can create a hook code that will be automatically invoked right after the template generation process has ended.
1. [React-sdk](apps/react-sdk): AsyncAPI React SDK is a set of components/functions to use React as render engine for the generator. This is the library that undestand components from Generator's templates that are configured to use `react` render engine.
1. [Generator-helpers](packages/helpers): A utility library that provides helper functions and utilities to simplify template development. It reduces boilerplate and speeds up template creation.
1. [Generator-components](packages/components): A library of reusable components that can be shared across different templates, helping to avoid duplication and accelerate template development.
 
- [Overview](#overview)
- [List of official generator templates](#list-of-official-generator-templates)
- [Hooks](#hooks)
- [Contributing](#contributing)
- [Contributors β¨](#contributors-%E2%9C%A8)
## Overview
Generator is a tool that you can use to generate whatever you want basing on the AsyncAPI specification file as an input. For more information [read the docs](https://www.asyncapi.com/docs/tools/generator).
There is a large number of templates that are ready to use and are officially supported by the AsyncAPI Initiative.
## List of official generator templates
| Template Name | Description | Source code |
| --------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------------------- |
| `@asyncapi/nodejs-template` | Generates Nodejs service that uses Hermes package | [click here](https://github.com/asyncapi/nodejs-template) |
| `@asyncapi/nodejs-ws-template` | Generates Nodejs service that supports WebSockets protocol only | [click here](https://github.com/asyncapi/nodejs-ws-template) |
| `@asyncapi/java-template` | Generates Java JMS application | [click here](https://github.com/asyncapi/java-template) |
| `@asyncapi/java-spring-template` | Generates Java Spring service | [click here](https://github.com/asyncapi/java-spring-template) |
| `@asyncapi/java-spring-cloud-stream-template` | Generates Java Spring Cloud Stream service | [click here](https://github.com/asyncapi/java-spring-cloud-stream-template) |
| `@asyncapi/python-paho-template` | Generates Python service that uses Paho library | [click here](https://github.com/asyncapi/python-paho-template) |
| `@asyncapi/html-template` | Generates HTML documentation site | [click here](https://github.com/asyncapi/html-template) |
| `@asyncapi/markdown-template` | Generates documentation in Markdown file | [click here](https://github.com/asyncapi/markdown-template) |
| `@asyncapi/ts-nats-template` | Generates TypeScript NATS client | [click here](https://github.com/asyncapi/ts-nats-template/) |
| `@asyncapi/go-watermill-template` | Generates Go client using Watermill | [click here](https://github.com/asyncapi/go-watermill-template) |
| `@asyncapi/dotnet-nats-template` | Generates .NET C# client using NATS | [click here](https://github.com/asyncapi/dotnet-nats-template) |
| `@asyncapi/php-template` | Generates PHP client using RabbitMQ | [click here](https://github.com/asyncapi/php-template) |
| `@asyncapi/dotnet-rabbitmq-template` | Generates .NET C# client using RabbitMQ | [click here](https://github.com/asyncapi/dotnet-rabbitmq-template) |
You can find above templates and the ones provided by the community in **[this list](https://github.com/search?q=topic%3Aasyncapi+topic%3Agenerator+topic%3Atemplate)**
> [!IMPORTANT]
> **Experimental Feature:** AsyncAPI Generator also comes with **baked-in templates** - official templates shipped directly inside the Generator (`@asyncapi/generator`). They cover code, docs, configs, and SDKs, and are maintained under [/packages/templates](packages/templates) directory, following a strict, opinionated structure for consistency and ease of maintenance. This feature is not recommended for production use. For those who want to try them out or learn more, see the [Baked-in templates documentation](https://www.asyncapi.com/docs/tools/generator/baked-in-templates).
## Hooks
[Hooks](https://www.asyncapi.com/docs/tools/generator/hooks) are functions called by the generator at specific moments in the generation process. Hooks can be anonymous functions, but you can also assign them function names. These hooks can have arguments provided to them, or they may be expected to return a value.
These hooks are included in the generator without adding any specific dependency to the library. You still have to enable the given hook in the configuration explicitly because some hooks can execute automatically without passing a specific parameter. [Learn more about configuration and what hooks are available out of the box](https://www.asyncapi.com/docs/tools/generator/hooks#official-library).
## Contributing
For the development setup, you can follow the detailed guide in [Developement guide](Development.md)
Read [CONTRIBUTING](CONTRIBUTING.md) guide.
## Contributors β¨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):

Fran MΓ©ndez
π¬ π π» π π€ π§ π π β οΈ β

Jonas Lagoni
π¬ π π» π π€ π π β οΈ

Lukasz Gornicki
π¬ π π π» π π€ π§ π π β οΈ β
π

Travis Reeder
π π

Semen
π π» π π€ π π β οΈ

Waleed Ashraf
π» π

SebastiΓ‘n
π»

Derk Muenchhausen
π»

Ben Timby
π»

Amanda Shafack
π

Florence Njeri
π π π π§

Pratik Haldankar
π π π§ π’

swastik suvam singh
π»

GavinZhengOI
π

lmgyuan
π π π» π€ π β οΈ

pierrick-boule
π» β οΈ π

Dhairya Majmudar
π

Mintu Gogoi
π π» π€ π π β οΈ

AdityaPat_
π

Achal Jhawar
β οΈ

Shuaib S.
β οΈ π π

Adi Boghawala
π π» π€ π π β οΈ π π§

Kunal Nasa
π» π π

V Thulisile Sibanda
β οΈ

Ahmed Atwa
β οΈ π

Sarvesh.Patil
β οΈ π

Mohan Kumar
π π» π€

Moderator
π» π β οΈ

ANIRUDH
β οΈ

Julian Waller
π β οΈ π»
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!