Skip to main content

AsyncAPI Codegen

This 3rd-party open source tool creates C++ interfaces according to AsyncAPI specifications. Currently, only MQTT is supported.

Python Generator

The Python3 generator interprets a AsyncAPI specification and uses jinja2 templates to create a number of C++ sources and headers.

The AsyncAPI must be format-decoded first, using a JSON or YAML parser. The resulting parsed structure is then passed to the generator.

The generator interprets the specification directly. For example, if the specification defines a publish operation, the generator creates code for publishing.

Output files

The generator creates the following types of output files:

  • client interface. This is the main interface for publishing or subscribing to messages.
  • servers. Represents a connection to a server. Currently, only unauthenticated MQTT connections are supported. A server object is provided to a client interface to establish the connection to the broker/server.
  • parameters. These are just schema objects.
  • messages. Currently, these are just schema objects. However, in the future these objects will also take protocol-specific message bindings.
  • schemas. These are structures that always enforce schema compliance and provide (de-)serialization methods to rapidjson Value objects (which can thus be used to create JSON strings).

Generated code files should be annotated for doxygen document generation, or at least that is the goal.

Installation

pip3 install asyncapi-codegen

Python requirements for running code generator

See also requirements.txt

  • python 3.7
  • jinja2
  • stringcase
  • json-schema-codegen
  • pyyaml

C++ requirements for generated code

  • boost (boost::optional and boost::variant among others)
  • rapidjson
  • C++11

License

GPLv2

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

asyncapi-codegen-0.0.4.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

asyncapi_codegen-0.0.4-py3-none-any.whl (28.4 kB view details)

Uploaded Python 3

File details

Details for the file asyncapi-codegen-0.0.4.tar.gz.

File metadata

  • Download URL: asyncapi-codegen-0.0.4.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.8.0 tqdm/4.36.1 CPython/3.7.0

File hashes

Hashes for asyncapi-codegen-0.0.4.tar.gz
Algorithm Hash digest
SHA256 6e001b42d984ac58bd5f61a033ab504a5ba8d9c41bef47f9640088d946d90468
MD5 2dbdf0c52565d6cc1d2154b6b8dd4e64
BLAKE2b-256 57f90e304f2475d78581c930b0185a2294abaf23f68be6957d200b4c93dde6ed

See more details on using hashes here.

File details

Details for the file asyncapi_codegen-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: asyncapi_codegen-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 28.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.8.0 tqdm/4.36.1 CPython/3.7.0

File hashes

Hashes for asyncapi_codegen-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c8077c0a364c52a65e03671c298437d30420b0c1c34e2eceec74599cee694c68
MD5 6115322751499677e86c464bc9c14f02
BLAKE2b-256 0f3fa35e6560a39bfd713b72e89072e0a90d8b87462e3b721d9d7a434944f3c0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page