# AsyncAPI — Open Standard for Event-Driven API Documentation > AsyncAPI is an open specification for defining asynchronous APIs. It provides a machine-readable format for documenting message-driven architectures using protocols like Kafka, MQTT, WebSocket, and AMQP, with tooling for code generation and validation. ## Install Save as a script file and run: # AsyncAPI — Open Standard for Event-Driven API Documentation ## Quick Use ```bash # Install the AsyncAPI CLI npm install -g @asyncapi/cli # Create a new AsyncAPI document from a template asyncapi new # Validate an existing spec file asyncapi validate asyncapi.yaml # Generate documentation asyncapi generate fromTemplate asyncapi.yaml @asyncapi/html-template -o docs/ ``` ## Introduction AsyncAPI is an open specification, similar to OpenAPI but designed for event-driven and message-based APIs. It lets teams describe the channels, messages, and schemas their services produce and consume, enabling automated documentation, code generation, and contract testing for asynchronous architectures. ## What AsyncAPI Does - Defines a YAML/JSON schema for describing message brokers, channels, and message payloads - Generates human-readable documentation from specification files - Produces server and client code stubs in multiple languages - Validates messages against defined schemas for contract testing - Supports protocol bindings for Kafka, MQTT, AMQP, WebSocket, NATS, and more ## Architecture Overview The AsyncAPI ecosystem has three layers: the specification itself (a JSON Schema-based format), a set of parsers that read and validate spec documents, and a toolchain of generators and UIs. The CLI orchestrates these components. The spec parser resolves references and produces an in-memory document model. Generators consume this model through Nunjucks or React-based templates to produce output (docs, code, diagrams). ## Self-Hosting & Configuration - Install the CLI via npm, Homebrew, or Docker - Spec files are plain YAML or JSON; no server infrastructure required - AsyncAPI Studio (web IDE) can be self-hosted as a static site - Generator templates are published as npm packages and can be customized - CI integration via the CLI for spec validation in pull request checks ## Key Features - Protocol-agnostic: supports Kafka, MQTT, AMQP, WebSocket, Solace, NATS, and more - Code generation for TypeScript, Java, Python, Go, and other languages - AsyncAPI Studio provides a visual editor with live preview - Schema reuse via JSON Schema references and traits - Community-maintained generator templates for common frameworks ## Comparison with Similar Tools - **OpenAPI (Swagger)** — designed for REST/HTTP APIs; AsyncAPI covers event-driven protocols - **CloudEvents** — defines a common event envelope format; AsyncAPI documents the full API contract including channels and bindings - **Avro/Protobuf** — schema formats for serialization; AsyncAPI wraps around these to describe the broader messaging architecture - **Smithy (AWS)** — API modeling language; AsyncAPI is more community-driven and protocol-neutral - **RAML** — API description language; AsyncAPI specifically targets asynchronous patterns ## FAQ **Q: How does AsyncAPI relate to OpenAPI?** A: AsyncAPI was inspired by OpenAPI and shares similar structure. OpenAPI describes synchronous HTTP APIs; AsyncAPI describes asynchronous message-based APIs. They can be used together in a system with both REST and event-driven components. **Q: What protocols does AsyncAPI support?** A: Kafka, MQTT, AMQP 0-9-1, AMQP 1.0, WebSocket, NATS, JMS, Solace, Google Pub/Sub, Amazon SNS/SQS, and others via protocol bindings. **Q: Can I generate server code from an AsyncAPI document?** A: Yes. The generator tool produces code stubs in multiple languages. Templates exist for Node.js, Java Spring, and Python, among others. **Q: Is AsyncAPI a CNCF or Linux Foundation project?** A: AsyncAPI is part of the Linux Foundation, giving it vendor-neutral governance and long-term sustainability. ## Sources - https://github.com/asyncapi/spec - https://www.asyncapi.com --- Source: https://tokrepo.com/en/workflows/asset-ea7c8b80 Author: Script Depot