Features #
- AsyncAPI 2.6.0
- Support the majority of AsyncAPI features
- Support many protocols
- No extra dependencies in the generated code
- Optional simple client implementations based on most popular libraries
- Reuse the code generated before
- Breaking down the generated code in several ways
- Objects selection to generate
- “Consumer only”, “producer only” code generation
- Content types support
- References ($ref) resolving
- Document-local refs
- Refs to files on local filesystem
- Refs to the remote documents available via HTTP(S)
- Custom resolver (just an executable you provide), if refs are needed to be resolved in a custom way
- Optional encoders/decoders for content types, specified in the AsyncAPI document
- Support many features of jsonschema, including polymorphism (oneOf, anyOf, allOf)
- Support the zero-allocation approach if you need to reduce the load on the Go’s garbage collector
Protocols #
Here are the protocols that are supported by go-asyncapi
for now:
* - not described in the AsyncAPI specification
AsyncAPI entities #
The marked items below are supported by the go-asyncapi
tool, unmarked items are in the roadmap.
For reference see AsyncAPI specification https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md
- AsyncAPI object **
- Default Content Type
- Identifier
- Info object
- Contact object
- License object
- Servers object
- Server object
- Server Variable object
- Server Bindings object
- Server object
- Channels object
- Channel item object
- Operation object
- Operation Trait object
- Operation Bindings object
- Channel Bindings object
- Operation object
- Channel item object
- Message object **
- Message Trait object
- Message Example object
- Message Bindings object
- Tags object
- Tag object
- External Documentation object
- Components object
- Reference object
- Schema object **
- Primitive types (number, string, boolean, etc.)
- Object types
- Array types
- OneOf, AnyOf, AllOf
- Security Scheme object
- Security Requirement object
- OAuth Flows object
- OAuth Flow object
- Parameters object
- Parameter object
- Correlation ID object
** - partial support, some entity fields are not supported yet
Content types #
For the following content types the go-asyncapi
generates the default encoders/decoders. You can freely add your
own content type with appropriate encoders/decoders or replace the default ones.