MCPcopy Index your code
hub / github.com/SOM-Research/asyncapi-toolkit

github.com/SOM-Research/asyncapi-toolkit @v0.9.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.9.0 ↗ · + Follow
5,943 symbols 11,578 edges 156 files 1,910 documented · 32%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

DOI

AsyncAPI Toolkit

Repository to host the grammar, metamodel, and code generation tools for AsyncAPI.

AsyncAPI provides a specification that allows you to define Message-Driven APIs in a machine-readable format. It's protocol-agnostic, so you can use it for APIs that work over Kafka, MQTT, AMQP, WebSockets, STOMP, etc. The spec is very similar to OpenAPI/Swagger so, if you're familiar with it, AsyncAPI should be easy for you.

The tools hosted in this repository aim to provide the toolset necessary to develop Message-Driven APIs following a Model-based approach starting from AsyncAPI specifications.

Browse the AsyncAPI Toolkit documentation

Want to learn more?

Check our publications and other resources about the AsyncAPI Toolkit!

  • Abel Gómez, Markel Iglesias-Urkia, Lorea Belategi, Xabier Mendialdua, Jordi Cabot. Model-driven development of asynchronous message-driven architectures with AsyncAPI. Software and Systems Modeling (2021). https://doi.org/10.1007/s10270-021-00945-3.

[ Open access publication ]

  • Abel Gómez, Markel Iglesias-Urkia, Aitor Urbieta, Jordi Cabot. A model-based approach for developing event-driven architectures with AsyncAPI. Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems, Association for Computing Machinery, Virtual Event, Canada, 2020, ISBN: 9781450370196. https://doi.org/10.1145/3365438.3410948.

[ Archived preprint | Archived HD presentation ]

  • Abel Gómez. A model-based AsyncAPI code generator for IoT environments. AsyncAPI Conference 2020. https://conference.2020.asyncapi.com/#abel-gomez.

[ Conference video | Archived HD presentation ]

  • Abel Gómez, Iker Fernandez de Larrea, Markel Iglesias-Urkia, Beatriz Lopez-Davalillo, Aitor Urbieta, Jordi Cabot. Una Aproximación Basada en Modelos para la Definición de Arquitecturas Asíncronas. Actas de las XXIV Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2019), Sistedes, 2019. http://hdl.handle.net/11705/JISBD/2019/035 (only in Spanish).

[ Open access publication ]

  • Marc Oriol, Abel Gómez, and Jordi Cabot. AsyncSLA: Towards a Service Level Agreement for Asynchronous Services. In The 39th ACM/SIGAPP Symposium on Applied Computing (SAC ’24), April 8–12, 2024, Avila, Spain. ACM, New York, NY, USA, Article 4, 8 pages. https://doi.org/10.1145/3605098.3636074.

[ Archived preprint ]

License

This project is licensed under the EPL v2.0 license.

The AsyncAPI logo and AsyncAPI specification are property of the AsyncAPI Initiative. The AsyncAPI Specification is licensed under The Apache License, Version 2.0.

Extension points exported contracts — how you extend this code

Tag (Interface)
<!-- begin-user-doc --> A representation of the model object ' Tag '. <!-- end-user-doc --> The follo [11 implementers]
plugins/io.github.abelgomez.asyncapi/src-gen/io/github/abelgomez/asyncapi/asyncApi/Tag.java
Subscriber (Interface)
<!-- begin-user-doc --> A representation of the model object ' Subscriber '. <!-- end-user-doc --> Th [3 implementers]
plugins/io.github.abelgomez.asyncapi.i40.profile/src/io/github/abelgomez/asyncapi/i40/Subscriber.java
License (Interface)
<!-- begin-user-doc --> A representation of the model object ' License '. <!-- end-user-doc --> The f [5 implementers]
plugins/io.github.abelgomez.asyncapi/src-gen/io/github/abelgomez/asyncapi/asyncApi/License.java
Publisher (Interface)
<!-- begin-user-doc --> A representation of the model object ' Publisher '. <!-- end-user-doc --> The [3 implementers]
plugins/io.github.abelgomez.asyncapi.i40.profile/src/io/github/abelgomez/asyncapi/i40/Publisher.java
MessageTrait (Interface)
<!-- begin-user-doc --> A representation of the model object ' Message Trait '. <!-- end-user-doc --> [3 implementers]
plugins/io.github.abelgomez.asyncapi/src-gen/io/github/abelgomez/asyncapi/asyncApi/MessageTrait.java
I40Component (Interface)
<!-- begin-user-doc --> A representation of the model object ' Component '. <!-- end-user-doc --> The [2 implementers]
plugins/io.github.abelgomez.asyncapi.i40.profile/src/io/github/abelgomez/asyncapi/i40/I40Component.java
QualifyingCondition (Interface)
<!-- begin-user-doc --> A representation of the model object ' Qualifying Condition '. <!-- end-user-doc - [3 implementers]
plugins/io.github.abelgomez.asyncapi/src-gen/io/github/abelgomez/asyncapi/asyncApi/QualifyingCondition.java
RedefinableProperty (Interface)
<!-- begin-user-doc --> A representation of the model object ' Redefinable Property '. <!-- end-user-doc - [2 implementers]
plugins/io.github.abelgomez.asyncapi.i40.profile/src/io/github/abelgomez/asyncapi/i40/RedefinableProperty.java

Core symbols most depended-on inside this repo

get
called by 1331
plugins/io.github.abelgomez.asyncapi/src-gen/io/github/abelgomez/asyncapi/asyncApi/Boolean.java
getUnorderedGroup_2
called by 298
plugins/io.github.abelgomez.asyncapi/src-gen/io/github/abelgomez/asyncapi/services/AsyncApiGrammarAccess.java
getSchemaAccess
called by 169
plugins/io.github.abelgomez.asyncapi/src-gen/io/github/abelgomez/asyncapi/services/AsyncApiGrammarAccess.java
getKeywordAccess
called by 130
plugins/io.github.abelgomez.asyncapi/src-gen/io/github/abelgomez/asyncapi/services/AsyncApiGrammarAccess.java
getMessageAccess
called by 128
plugins/io.github.abelgomez.asyncapi/src-gen/io/github/abelgomez/asyncapi/services/AsyncApiGrammarAccess.java
toString
called by 120
plugins/io.github.abelgomez.asyncapi.i40.profile/src/io/github/abelgomez/asyncapi/i40/Parameter.java
getComponentsAccess
called by 110
plugins/io.github.abelgomez.asyncapi/src-gen/io/github/abelgomez/asyncapi/services/AsyncApiGrammarAccess.java
getAsyncAPIAccess
called by 87
plugins/io.github.abelgomez.asyncapi/src-gen/io/github/abelgomez/asyncapi/services/AsyncApiGrammarAccess.java

Shape

Method 5,725
Class 153
Interface 54
Enum 11

Languages

Java100%

Modules by API surface

plugins/io.github.abelgomez.asyncapi/src-gen/io/github/abelgomez/asyncapi/services/AsyncApiGrammarAccess.java1,432 symbols
plugins/io.github.abelgomez.asyncapi/src-gen/io/github/abelgomez/asyncapi/parser/antlr/internal/InternalAsyncApiLexer.java1,052 symbols
plugins/io.github.abelgomez.asyncapi.ide/src-gen/io/github/abelgomez/asyncapi/ide/contentassist/antlr/internal/InternalAsyncApiLexer.java1,052 symbols
plugins/io.github.abelgomez.asyncapi.ui/src-gen/io/github/abelgomez/asyncapi/ui/contentassist/AbstractAsyncApiProposalProvider.java175 symbols
plugins/io.github.abelgomez.asyncapi/src-gen/io/github/abelgomez/asyncapi/asyncApi/impl/AsyncApiPackageImpl.java172 symbols
plugins/io.github.abelgomez.asyncapi/src-gen/io/github/abelgomez/asyncapi/asyncApi/AsyncApiPackage.java169 symbols
plugins/io.github.abelgomez.asyncapi/src-gen/io/github/abelgomez/asyncapi/parser/antlr/internal/InternalAsyncApiParser.java109 symbols
plugins/io.github.abelgomez.asyncapi/src-gen/io/github/abelgomez/asyncapi/serializer/AsyncApiSyntacticSequencer.java91 symbols
plugins/io.github.abelgomez.asyncapi/src-gen/io/github/abelgomez/asyncapi/asyncApi/util/AsyncApiAdapterFactory.java84 symbols
plugins/io.github.abelgomez.asyncapi/src-gen/io/github/abelgomez/asyncapi/asyncApi/impl/AsyncApiFactoryImpl.java67 symbols
plugins/io.github.abelgomez.asyncapi.i40.profile/src/io/github/abelgomez/asyncapi/i40/impl/I40PackageImpl.java51 symbols
plugins/io.github.abelgomez.asyncapi.i40.profile/src/io/github/abelgomez/asyncapi/i40/I40Package.java47 symbols

For agents

$ claude mcp add asyncapi-toolkit \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page