diff --git a/.coderabbit.yaml b/.coderabbit.yaml
new file mode 100644
index 000000000000..74b51b881dd3
--- /dev/null
+++ b/.coderabbit.yaml
@@ -0,0 +1,35 @@
+language: "en-US"
+reviews:
+ high_level_summary: true
+ tools:
+ markdownlint:
+ enabled: true
+ biome:
+ enabled: true
+ github-checks:
+ enabled: true
+ timeout_ms: 180000
+ languagetool:
+ enabled: true
+ enabled_only: false
+ level: default
+ hadolint:
+ enabled: true
+ yamllint:
+ enabled: true
+ gitleaks:
+ enabled: true
+ eslint:
+ enabled: true
+ actionlint:
+ enabled: true
+ semgrep:
+ enabled: true
+knowledge_base:
+ opt_out: false
+ learnings:
+ scope: "local"
+ issues:
+ scope: "local"
+ pull_requests:
+ scope: "local"
diff --git a/.eslintrc b/.eslintrc
index ddab7e016ee3..f77da8144e9c 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -9,7 +9,8 @@
"env": {
"browser": true,
"es2021": true,
- "node": true
+ "node": true,
+ "jest": true
},
"plugins": [
"react",
@@ -313,4 +314,4 @@
}
}
]
-}
\ No newline at end of file
+}
diff --git a/.github/workflows/update-maintainers-trigger.yaml b/.github/workflows/update-maintainers-trigger.yaml
new file mode 100644
index 000000000000..12fc4abe4f06
--- /dev/null
+++ b/.github/workflows/update-maintainers-trigger.yaml
@@ -0,0 +1,28 @@
+# This action is centrally managed in https://github.com/asyncapi/.github/
+# Don't make changes to this file in this repo as they will be overwritten with changes made to the same file in above mentioned repo
+
+name: Trigger MAINTAINERS.yaml file update
+
+on:
+ push:
+ branches: [ master ]
+ paths:
+ # Check all valid CODEOWNERS locations:
+ # https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#codeowners-file-location
+ - 'CODEOWNERS'
+ - '.github/CODEOWNERS'
+ - '.docs/CODEOWNERS'
+
+jobs:
+ trigger-maintainers-update:
+ name: Trigger updating MAINTAINERS.yaml because of CODEOWNERS change
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Repository Dispatch
+ uses: peter-evans/repository-dispatch@ff45666b9427631e3450c54a1bcbee4d9ff4d7c0 # https://github.com/peter-evans/repository-dispatch/releases/tag/v3.0.0
+ with:
+ # The PAT with the 'public_repo' scope is required
+ token: ${{ secrets.GH_TOKEN }}
+ repository: ${{ github.repository_owner }}/community
+ event-type: trigger-maintainers-update
diff --git a/LICENSE-docs b/LICENSE-docs
new file mode 100644
index 000000000000..102013379aa9
--- /dev/null
+++ b/LICENSE-docs
@@ -0,0 +1,395 @@
+Attribution 4.0 International
+
+=======================================================================
+
+Creative Commons Corporation ("Creative Commons") is not a law firm and
+does not provide legal services or legal advice. Distribution of
+Creative Commons public licenses does not create a lawyer-client or
+other relationship. Creative Commons makes its licenses and related
+information available on an "as-is" basis. Creative Commons gives no
+warranties regarding its licenses, any material licensed under their
+terms and conditions, or any related information. Creative Commons
+disclaims all liability for damages resulting from their use to the
+fullest extent possible.
+
+Using Creative Commons Public Licenses
+
+Creative Commons public licenses provide a standard set of terms and
+conditions that creators and other rights holders may use to share
+original works of authorship and other material subject to copyright
+and certain other rights specified in the public license below. The
+following considerations are for informational purposes only, are not
+exhaustive, and do not form part of our licenses.
+
+ Considerations for licensors: Our public licenses are
+ intended for use by those authorized to give the public
+ permission to use material in ways otherwise restricted by
+ copyright and certain other rights. Our licenses are
+ irrevocable. Licensors should read and understand the terms
+ and conditions of the license they choose before applying it.
+ Licensors should also secure all rights necessary before
+ applying our licenses so that the public can reuse the
+ material as expected. Licensors should clearly mark any
+ material not subject to the license. This includes other CC-
+ licensed material, or material used under an exception or
+ limitation to copyright. More considerations for licensors:
+ wiki.creativecommons.org/Considerations_for_licensors
+
+ Considerations for the public: By using one of our public
+ licenses, a licensor grants the public permission to use the
+ licensed material under specified terms and conditions. If
+ the licensor's permission is not necessary for any reason--for
+ example, because of any applicable exception or limitation to
+ copyright--then that use is not regulated by the license. Our
+ licenses grant only permissions under copyright and certain
+ other rights that a licensor has authority to grant. Use of
+ the licensed material may still be restricted for other
+ reasons, including because others have copyright or other
+ rights in the material. A licensor may make special requests,
+ such as asking that all changes be marked or described.
+ Although not required by our licenses, you are encouraged to
+ respect those requests where reasonable. More considerations
+ for the public:
+ wiki.creativecommons.org/Considerations_for_licensees
+
+=======================================================================
+
+Creative Commons Attribution 4.0 International Public License
+
+By exercising the Licensed Rights (defined below), You accept and agree
+to be bound by the terms and conditions of this Creative Commons
+Attribution 4.0 International Public License ("Public License"). To the
+extent this Public License may be interpreted as a contract, You are
+granted the Licensed Rights in consideration of Your acceptance of
+these terms and conditions, and the Licensor grants You such rights in
+consideration of benefits the Licensor receives from making the
+Licensed Material available under these terms and conditions.
+
+
+Section 1 -- Definitions.
+
+ a. Adapted Material means material subject to Copyright and Similar
+ Rights that is derived from or based upon the Licensed Material
+ and in which the Licensed Material is translated, altered,
+ arranged, transformed, or otherwise modified in a manner requiring
+ permission under the Copyright and Similar Rights held by the
+ Licensor. For purposes of this Public License, where the Licensed
+ Material is a musical work, performance, or sound recording,
+ Adapted Material is always produced where the Licensed Material is
+ synched in timed relation with a moving image.
+
+ b. Adapter's License means the license You apply to Your Copyright
+ and Similar Rights in Your contributions to Adapted Material in
+ accordance with the terms and conditions of this Public License.
+
+ c. Copyright and Similar Rights means copyright and/or similar rights
+ closely related to copyright including, without limitation,
+ performance, broadcast, sound recording, and Sui Generis Database
+ Rights, without regard to how the rights are labeled or
+ categorized. For purposes of this Public License, the rights
+ specified in Section 2(b)(1)-(2) are not Copyright and Similar
+ Rights.
+
+ d. Effective Technological Measures means those measures that, in the
+ absence of proper authority, may not be circumvented under laws
+ fulfilling obligations under Article 11 of the WIPO Copyright
+ Treaty adopted on December 20, 1996, and/or similar international
+ agreements.
+
+ e. Exceptions and Limitations means fair use, fair dealing, and/or
+ any other exception or limitation to Copyright and Similar Rights
+ that applies to Your use of the Licensed Material.
+
+ f. Licensed Material means the artistic or literary work, database,
+ or other material to which the Licensor applied this Public
+ License.
+
+ g. Licensed Rights means the rights granted to You subject to the
+ terms and conditions of this Public License, which are limited to
+ all Copyright and Similar Rights that apply to Your use of the
+ Licensed Material and that the Licensor has authority to license.
+
+ h. Licensor means the individual(s) or entity(ies) granting rights
+ under this Public License.
+
+ i. Share means to provide material to the public by any means or
+ process that requires permission under the Licensed Rights, such
+ as reproduction, public display, public performance, distribution,
+ dissemination, communication, or importation, and to make material
+ available to the public including in ways that members of the
+ public may access the material from a place and at a time
+ individually chosen by them.
+
+ j. Sui Generis Database Rights means rights other than copyright
+ resulting from Directive 96/9/EC of the European Parliament and of
+ the Council of 11 March 1996 on the legal protection of databases,
+ as amended and/or succeeded, as well as other essentially
+ equivalent rights anywhere in the world.
+
+ k. You means the individual or entity exercising the Licensed Rights
+ under this Public License. Your has a corresponding meaning.
+
+
+Section 2 -- Scope.
+
+ a. License grant.
+
+ 1. Subject to the terms and conditions of this Public License,
+ the Licensor hereby grants You a worldwide, royalty-free,
+ non-sublicensable, non-exclusive, irrevocable license to
+ exercise the Licensed Rights in the Licensed Material to:
+
+ a. reproduce and Share the Licensed Material, in whole or
+ in part; and
+
+ b. produce, reproduce, and Share Adapted Material.
+
+ 2. Exceptions and Limitations. For the avoidance of doubt, where
+ Exceptions and Limitations apply to Your use, this Public
+ License does not apply, and You do not need to comply with
+ its terms and conditions.
+
+ 3. Term. The term of this Public License is specified in Section
+ 6(a).
+
+ 4. Media and formats; technical modifications allowed. The
+ Licensor authorizes You to exercise the Licensed Rights in
+ all media and formats whether now known or hereafter created,
+ and to make technical modifications necessary to do so. The
+ Licensor waives and/or agrees not to assert any right or
+ authority to forbid You from making technical modifications
+ necessary to exercise the Licensed Rights, including
+ technical modifications necessary to circumvent Effective
+ Technological Measures. For purposes of this Public License,
+ simply making modifications authorized by this Section 2(a)
+ (4) never produces Adapted Material.
+
+ 5. Downstream recipients.
+
+ a. Offer from the Licensor -- Licensed Material. Every
+ recipient of the Licensed Material automatically
+ receives an offer from the Licensor to exercise the
+ Licensed Rights under the terms and conditions of this
+ Public License.
+
+ b. No downstream restrictions. You may not offer or impose
+ any additional or different terms or conditions on, or
+ apply any Effective Technological Measures to, the
+ Licensed Material if doing so restricts exercise of the
+ Licensed Rights by any recipient of the Licensed
+ Material.
+
+ 6. No endorsement. Nothing in this Public License constitutes or
+ may be construed as permission to assert or imply that You
+ are, or that Your use of the Licensed Material is, connected
+ with, or sponsored, endorsed, or granted official status by,
+ the Licensor or others designated to receive attribution as
+ provided in Section 3(a)(1)(A)(i).
+
+ b. Other rights.
+
+ 1. Moral rights, such as the right of integrity, are not
+ licensed under this Public License, nor are publicity,
+ privacy, and/or other similar personality rights; however, to
+ the extent possible, the Licensor waives and/or agrees not to
+ assert any such rights held by the Licensor to the limited
+ extent necessary to allow You to exercise the Licensed
+ Rights, but not otherwise.
+
+ 2. Patent and trademark rights are not licensed under this
+ Public License.
+
+ 3. To the extent possible, the Licensor waives any right to
+ collect royalties from You for the exercise of the Licensed
+ Rights, whether directly or through a collecting society
+ under any voluntary or waivable statutory or compulsory
+ licensing scheme. In all other cases the Licensor expressly
+ reserves any right to collect such royalties.
+
+
+Section 3 -- License Conditions.
+
+Your exercise of the Licensed Rights is expressly made subject to the
+following conditions.
+
+ a. Attribution.
+
+ 1. If You Share the Licensed Material (including in modified
+ form), You must:
+
+ a. retain the following if it is supplied by the Licensor
+ with the Licensed Material:
+
+ i. identification of the creator(s) of the Licensed
+ Material and any others designated to receive
+ attribution, in any reasonable manner requested by
+ the Licensor (including by pseudonym if
+ designated);
+
+ ii. a copyright notice;
+
+ iii. a notice that refers to this Public License;
+
+ iv. a notice that refers to the disclaimer of
+ warranties;
+
+ v. a URI or hyperlink to the Licensed Material to the
+ extent reasonably practicable;
+
+ b. indicate if You modified the Licensed Material and
+ retain an indication of any previous modifications; and
+
+ c. indicate the Licensed Material is licensed under this
+ Public License, and include the text of, or the URI or
+ hyperlink to, this Public License.
+
+ 2. You may satisfy the conditions in Section 3(a)(1) in any
+ reasonable manner based on the medium, means, and context in
+ which You Share the Licensed Material. For example, it may be
+ reasonable to satisfy the conditions by providing a URI or
+ hyperlink to a resource that includes the required
+ information.
+
+ 3. If requested by the Licensor, You must remove any of the
+ information required by Section 3(a)(1)(A) to the extent
+ reasonably practicable.
+
+ 4. If You Share Adapted Material You produce, the Adapter's
+ License You apply must not prevent recipients of the Adapted
+ Material from complying with this Public License.
+
+
+Section 4 -- Sui Generis Database Rights.
+
+Where the Licensed Rights include Sui Generis Database Rights that
+apply to Your use of the Licensed Material:
+
+ a. for the avoidance of doubt, Section 2(a)(1) grants You the right
+ to extract, reuse, reproduce, and Share all or a substantial
+ portion of the contents of the database;
+
+ b. if You include all or a substantial portion of the database
+ contents in a database in which You have Sui Generis Database
+ Rights, then the database in which You have Sui Generis Database
+ Rights (but not its individual contents) is Adapted Material; and
+
+ c. You must comply with the conditions in Section 3(a) if You Share
+ all or a substantial portion of the contents of the database.
+
+For the avoidance of doubt, this Section 4 supplements and does not
+replace Your obligations under this Public License where the Licensed
+Rights include other Copyright and Similar Rights.
+
+
+Section 5 -- Disclaimer of Warranties and Limitation of Liability.
+
+ a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
+ EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
+ AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
+ ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
+ IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
+ WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
+ ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
+ KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
+ ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
+
+ b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
+ TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
+ NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
+ INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
+ COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
+ USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
+ ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
+ DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
+ IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
+
+ c. The disclaimer of warranties and limitation of liability provided
+ above shall be interpreted in a manner that, to the extent
+ possible, most closely approximates an absolute disclaimer and
+ waiver of all liability.
+
+
+Section 6 -- Term and Termination.
+
+ a. This Public License applies for the term of the Copyright and
+ Similar Rights licensed here. However, if You fail to comply with
+ this Public License, then Your rights under this Public License
+ terminate automatically.
+
+ b. Where Your right to use the Licensed Material has terminated under
+ Section 6(a), it reinstates:
+
+ 1. automatically as of the date the violation is cured, provided
+ it is cured within 30 days of Your discovery of the
+ violation; or
+
+ 2. upon express reinstatement by the Licensor.
+
+ For the avoidance of doubt, this Section 6(b) does not affect any
+ right the Licensor may have to seek remedies for Your violations
+ of this Public License.
+
+ c. For the avoidance of doubt, the Licensor may also offer the
+ Licensed Material under separate terms or conditions or stop
+ distributing the Licensed Material at any time; however, doing so
+ will not terminate this Public License.
+
+ d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
+ License.
+
+
+Section 7 -- Other Terms and Conditions.
+
+ a. The Licensor shall not be bound by any additional or different
+ terms or conditions communicated by You unless expressly agreed.
+
+ b. Any arrangements, understandings, or agreements regarding the
+ Licensed Material not stated herein are separate from and
+ independent of the terms and conditions of this Public License.
+
+
+Section 8 -- Interpretation.
+
+ a. For the avoidance of doubt, this Public License does not, and
+ shall not be interpreted to, reduce, limit, restrict, or impose
+ conditions on any use of the Licensed Material that could lawfully
+ be made without permission under this Public License.
+
+ b. To the extent possible, if any provision of this Public License is
+ deemed unenforceable, it shall be automatically reformed to the
+ minimum extent necessary to make it enforceable. If the provision
+ cannot be reformed, it shall be severed from this Public License
+ without affecting the enforceability of the remaining terms and
+ conditions.
+
+ c. No term or condition of this Public License will be waived and no
+ failure to comply consented to unless expressly agreed to by the
+ Licensor.
+
+ d. Nothing in this Public License constitutes or may be interpreted
+ as a limitation upon, or waiver of, any privileges and immunities
+ that apply to the Licensor or You, including from the legal
+ processes of any jurisdiction or authority.
+
+
+=======================================================================
+
+Creative Commons is not a party to its public
+licenses. Notwithstanding, Creative Commons may elect to apply one of
+its public licenses to material it publishes and in those instances
+will be considered the “Licensor.” The text of the Creative Commons
+public licenses is dedicated to the public domain under the CC0 Public
+Domain Dedication. Except for the limited purpose of indicating that
+material is shared under a Creative Commons public license or as
+otherwise permitted by the Creative Commons policies published at
+creativecommons.org/policies, Creative Commons does not authorize the
+use of the trademark "Creative Commons" or any other trademark or logo
+of Creative Commons without its prior written consent including,
+without limitation, in connection with any unauthorized modifications
+to any of its public licenses or any other arrangements,
+understandings, or agreements concerning use of licensed material. For
+the avoidance of doubt, this paragraph does not form part of the
+public licenses.
+
+Creative Commons may be contacted at creativecommons.org.
\ No newline at end of file
diff --git a/README.md b/README.md
index 2422bd1b2aec..5d6eab484fea 100644
--- a/README.md
+++ b/README.md
@@ -314,6 +314,15 @@ This repository has the following structure:
+## License
+
+This project's source code is licensed under the Apache License, Version 2.0. A copy of the
+license is available in LICENSE file.
+
+This project's documentation is licensed under the Creative Commons Attribution
+4.0 International License (CC-BY-4.0). A copy of the license is available in
+LICENSE-docs.
+
## AsyncAPI Contributors ✨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
diff --git a/components/NewsletterSubscribe.tsx b/components/NewsletterSubscribe.tsx
index 9b4a983bc69b..3d9e0863dd69 100644
--- a/components/NewsletterSubscribe.tsx
+++ b/components/NewsletterSubscribe.tsx
@@ -1,4 +1,3 @@
-import { useTranslation } from 'next-i18next';
import React, { useState } from 'react';
import IconCircularLoader from '@/components/icons/CircularLoader';
@@ -6,6 +5,7 @@ import { ButtonType } from '@/types/components/buttons/ButtonPropsType';
import { InputTypes } from '@/types/components/InputBoxPropsType';
import { HeadingLevel, HeadingTypeStyle } from '@/types/typography/Heading';
+import { useTranslation } from '../utils/i18n';
import Button from './buttons/Button';
import InputBox from './InputBox';
import Loader from './Loader';
@@ -26,6 +26,7 @@ interface NewsletterSubscribeProps {
title?: string;
subtitle?: string;
type?: string;
+ errorSubtitle?: string;
}
/**
@@ -37,19 +38,21 @@ interface NewsletterSubscribeProps {
* @param {string} props.title - The title of the Subscribe card.
* @param {string} props.subtitle - The subtitle of the Subscribe card.
* @param {string} props.type - The type of subscription.
+ * @param {string} props.errorSubtitle - The error subtitle to be displayed.
*/
export default function NewsletterSubscribe({
className = 'p-8 text-center text-black',
dark = false,
title = 'Subscribe to our newsletter to receive news about AsyncAPI.',
subtitle = 'We respect your inbox. No spam, promise ✌️',
- type = 'Newsletter'
+ type = 'Newsletter',
+ errorSubtitle = 'Subscription failed, please let us know about it by submitting a bug'
}: NewsletterSubscribeProps) {
const [email, setEmail] = useState('');
const [name, setName] = useState('');
const [status, setStatus] = useState(FormStatus.NORMAL);
- const { t } = useTranslation('common');
+ const { t, ready } = useTranslation('common', { keyPrefix: 'newsletterCTA' });
const headTextColor = dark ? 'text-white' : '';
const paragraphTextColor = dark ? 'text-gray-300' : '';
@@ -94,10 +97,10 @@ export default function NewsletterSubscribe({
return (
- {t('newsletterCTA.successTitle')}
+ {ready ? t('successTitle') : 'Thank you for subscribing!'}
- {t('newsletterCTA.subtitle')}
+ {ready ? t('subtitle') : subtitle}
goToIndex(index)}
/>
diff --git a/components/campaigns/banners.ts b/components/campaigns/banners.ts
index b6472dbf4a25..8d15e19aad76 100644
--- a/components/campaigns/banners.ts
+++ b/components/campaigns/banners.ts
@@ -3,7 +3,7 @@
* @returns Whether the banner should be shown
* @description Check if the current date is after the deadline
*/
-function shouldShowBanner(cfpDeadline: string) {
+export function shouldShowBanner(cfpDeadline: string) {
const currentDate = new Date(); // G et the current date
const deadline = new Date(cfpDeadline); // Convert the cfpDeadline string to a Date object
@@ -15,18 +15,14 @@ function shouldShowBanner(cfpDeadline: string) {
return true;
}
-const cfpDeadlineParis = '2024-10-12T06:00:00Z';
-const showBannerParis = shouldShowBanner(cfpDeadlineParis);
-
export const banners = [
{
- title: "AsyncAPI Conf on Tour'24",
- city: 'Paris',
- dateLocation: '3rd - 5th of December, 2024 | France, Paris',
- cfaText: 'Apply To Speak',
- eventName: 'the end of Call for Speakers',
- cfpDeadline: cfpDeadlineParis,
- link: 'https://conference.asyncapi.com/venue/Paris',
- show: showBannerParis
+ title: 'AsyncAPI Conference',
+ city: 'Paris Edition',
+ dateLocation: '5th of December, 2024 | France, Paris',
+ cfaText: 'Get Your Free Ticket',
+ eventName: 'the AsyncAPI Conf in Paris',
+ cfpDeadline: '2024-12-01T06:00:00Z',
+ link: 'https://conference.asyncapi.com/#tickets'
}
];
diff --git a/components/data/buckets.ts b/components/data/buckets.ts
index dc6a11238467..1e9a4e0e042e 100644
--- a/components/data/buckets.ts
+++ b/components/data/buckets.ts
@@ -93,7 +93,7 @@ export const buckets: Bucket[] = [
name: 'Explorer',
title: 'Specification Explorer',
description: 'Simplifying our Specification JSON Schema like a pro.',
- link: '/docs/reference/specification/v3.0.0-Explorer',
+ link: '/docs/reference/specification/v3.0.0-explorer',
className: 'bg-teal-200',
borderClassName: 'border-orange-200',
icon: IconExplorer
diff --git a/components/navigation/MenuBlocks.tsx b/components/navigation/MenuBlocks.tsx
index 81548f97ec0c..b13543685bfe 100644
--- a/components/navigation/MenuBlocks.tsx
+++ b/components/navigation/MenuBlocks.tsx
@@ -42,7 +42,7 @@ export default function MenuBlocks({ items = [] }: MenuBlocksProps) {
>
diff --git a/components/sponsors/SilverSponsorsList.ts b/components/sponsors/SilverSponsorsList.ts
index 6c86f88eaa87..e49c6667d886 100644
--- a/components/sponsors/SilverSponsorsList.ts
+++ b/components/sponsors/SilverSponsorsList.ts
@@ -4,7 +4,7 @@ export const Silversponsors: SponsorType[] = [
{
name: 'Bump.sh',
website: 'https://bump.sh/asyncapi?utm_source=asyncapi&utm_medium=referral&utm_campaign=sponsor',
- altText: 'Bump',
+ altText: 'OpenAPI & AsyncAPI API docs - Bump.sh',
imageSrc: '/img/sponsors/bumpsh.svg',
imageClass: 'inline-block sm:h-9'
},
diff --git a/config/AMBASSADORS_MEMBERS.json b/config/AMBASSADORS_MEMBERS.json
index c86c4cca9898..7e0bb122ce72 100644
--- a/config/AMBASSADORS_MEMBERS.json
+++ b/config/AMBASSADORS_MEMBERS.json
@@ -287,72 +287,6 @@
}
]
},
- {
- "name": "Jesse Menning",
- "github": "jessemenning",
- "twitter": "JesseMenning",
- "bio": "Jesse Menning teams with companies and government agencies to design event-driven architecture and microservices at scale. To guide those discussions, I draw upon more than 15 years of integration architecture and implementation experience, particularly with IBM and Solace platforms. I've been involved with AsyncAPI since 2020, along with other open-source initiatives such as CloudEvents and OpenTelemetry.",
- "linkedin": "jesse-menning",
- "company": "Solace",
- "title": "Architect, Office of the CTO at Solace",
- "img": "https://avatars.githubusercontent.com/u/62108913?v=4",
- "contributions": [
- {
- "type": "article",
- "title": "AsyncAPI 2.3 Adds Solace Bindings to Unlock Full Power of PubSub+",
- "date": {
- "year": 2022,
- "month": "January"
- },
- "link": "https://solace.com/blog/asyncapi-adds-solace-bindings/"
- },
- {
- "type": "article",
- "title": "Align Production Reality and Event Documentation with the AsyncAPI Discovery Tool",
- "date": {
- "year": 2021,
- "month": "November"
- },
- "link": "https://solace.com/blog/asyncapi-discovery-tool/"
- },
- {
- "type": "article",
- "title": "AsyncAPI vs. OpenAPI: Answers to Your Burning Questions About the Two Leading API Specs",
- "date": {
- "year": 2021,
- "month": "June"
- },
- "link": "https://solace.com/blog/asyncapi-vs-openapi/"
- },
- {
- "type": "article",
- "title": "AsyncAPI, CloudEvents, OpenTelemetry: Which Event-Driven Specs Should Your DevOps Include?",
- "date": {
- "year": 2021,
- "month": "March"
- },
- "link": "https://solace.com/blog/asyncapi-cloudevents-opentelemetry-event-driven-specs-devops/"
- },
- {
- "type": "presentation",
- "title": "Future of AsyncAPI, Panel discussion, AsyncAPI Conference",
- "date": {
- "year": 2021,
- "month": "November"
- },
- "link": "https://www.youtube.com/watch?v=3EeMHhbwyOQ"
- },
- {
- "type": "presentation",
- "title": "Thinking Out Loud #4 — with Jesse Menning",
- "date": {
- "year": 2021,
- "month": "August"
- },
- "link": "https://www.youtube.com/watch?v=eJewFUR-OaM"
- }
- ]
- },
{
"name": "Ludovic Dussart",
"github": "M3lkior",
diff --git a/config/MAINTAINERS.json b/config/MAINTAINERS.json
index d5914331c17f..ee02bec23fbd 100644
--- a/config/MAINTAINERS.json
+++ b/config/MAINTAINERS.json
@@ -158,7 +158,7 @@
"html-template",
"markdown-template",
"nodejs-ws-template",
- "generator-hooks",
+ "glee",
"brand"
],
"githubID": 242119
@@ -181,8 +181,8 @@
"github": "jonaslagoni",
"linkedin": "jonaslagoni",
"slack": "UQ2ANBG1E",
+ "company": "EventStack",
"availableForHire": false,
- "company": "Postman",
"isTscMember": true,
"repos": [
"spec-json-schemas",
@@ -238,7 +238,7 @@
"twitter": "ldussart",
"availableForHire": false,
"company": "zatsit",
- "isTscMember": true,
+ "isTscMember": false,
"repos": [
"avro-schema-parser"
],
@@ -250,8 +250,7 @@
"linkedin": "lukasz-gornicki-a621914",
"slack": "UD698Q5LM",
"twitter": "derberq",
- "availableForHire": false,
- "company": "Postman",
+ "availableForHire": true,
"isTscMember": true,
"repos": [
"spec",
@@ -269,7 +268,6 @@
"github-action-for-cli",
".github",
"jasyncapi",
- "generator-hooks",
"vs-asyncapi-preview",
"template-for-generator-templates",
"community",
@@ -316,7 +314,6 @@
"github": "AceTheCreator",
"twitter": "_acebuild",
"slack": "U01RWDD69PZ",
- "company": "Postman",
"availableForHire": false,
"isTscMember": true,
"repos": [
@@ -346,7 +343,7 @@
"linkedin": "nektarios-fifes-372740220",
"slack": "U01SE93Q48N",
"availableForHire": true,
- "isTscMember": true,
+ "isTscMember": false,
"repos": [
"simulator"
],
@@ -412,8 +409,8 @@
"slack": "U01N6AW5V5G",
"twitter": "amzani",
"linkedin": "amzani",
+ "company": "Apideck",
"availableForHire": false,
- "company": "Postman",
"isTscMember": true,
"repos": [
"studio",
@@ -427,8 +424,8 @@
"linkedin": "smoya",
"slack": "UN22ZTLHG",
"twitter": "smoyac",
+ "company": "Timescale",
"availableForHire": false,
- "company": "Postman",
"isTscMember": true,
"repos": [
"spec",
@@ -453,8 +450,7 @@
"slack": "U01SGCZMJKW",
"twitter": "souvik_ns",
"linkedin": "souvik-de-a2b941169",
- "availableForHire": false,
- "company": "Postman",
+ "availableForHire": true,
"isTscMember": true,
"repos": [
"cli",
@@ -469,8 +465,7 @@
"twitter": "QuetzalliWrites",
"slack": "U02AKC14WAJ",
"linkedin": "quetzalli-writes",
- "availableForHire": false,
- "company": "Postman",
+ "availableForHire": true,
"isTscMember": true,
"repos": [
"website"
@@ -988,5 +983,18 @@
"kotlin-asyncapi"
],
"githubID": 758568
+ },
+ {
+ "name": "Ashmit Jagtap",
+ "github": "ashmit-coder",
+ "linkedin": "ashmit-jagtap",
+ "twitter": "AshmitJagtap",
+ "slack": "U06RA7GDHU1",
+ "availableForHire": true,
+ "isTscMember": true,
+ "repos": [
+ "conference-website"
+ ],
+ "githubID": 69006513
}
]
\ No newline at end of file
diff --git a/config/adopters.yml b/config/adopters.yml
index 0ffaba4966cb..456ac537a4fb 100644
--- a/config/adopters.yml
+++ b/config/adopters.yml
@@ -80,4 +80,16 @@
useCase: Implementing a GitOps-based pipeline to enable self-service management of Kafka infrastructure, including access control management. Automation of AsyncAPI document governance ensures consistency in the infrastructure at the pull request level.
resources:
- title: "Slides: AsyncAPI For Platform Self-Service: A GitOps Tale"
- link: https://drive.google.com/file/d/1y67PI8NaITPPwZAiDF2Zs7ISfcIpqMV8/view?usp=sharing
\ No newline at end of file
+ link: https://drive.google.com/file/d/1y67PI8NaITPPwZAiDF2Zs7ISfcIpqMV8/view?usp=sharing
+
+- companyName: Adidas
+ useCase: AsyncAPI is a standard for defining asynchronous APIs using Apache Kafka. AsyncAPI governed under official guidelines. AsyncAPI is promoted to be used for documentation and code generation.
+ resources:
+ - title: "Docs: AsyncAPI and Kafka Guidelines"
+ link: https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/a_introduction/why-asyncapi
+
+- companyName: Morgan Stanley
+ useCase: AsyncAPI is promoted not only inside the company but also as a standard for FinOS Foundation for managing architecture as code.
+ resources:
+ - title: "Slides: Deploying WebSockets with AsyncAPI and Architecture as Code"
+ link: https://drive.google.com/file/d/1YzLwQZsMUXGwj_Lsqv-ZnvV2knuowWrS/view?usp=drive_link
diff --git a/config/all-tags.json b/config/all-tags.json
index bcbe78efc37c..b8274f82abbd 100644
--- a/config/all-tags.json
+++ b/config/all-tags.json
@@ -1 +1 @@
-{"languages":[{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"},{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"},{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},{"name":"HTML","color":"bg-[#E2A291]","borderColor":"border-[#E44D26]"},{"name":"C/C++","color":"bg-[#93CDEF]","borderColor":"border-[#0080CC]"},{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"},{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"},{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"},{"name":"Kotlin","color":"bg-[#B1ACDF]","borderColor":"border-[#756BD9]"},{"name":"Scala","color":"bg-[#FFA299]","borderColor":"border-[#DF301F]"},{"name":"Markdown","color":"bg-[#BABEBF]","borderColor":"border-[#445B64]"},{"name":"YAML","color":"bg-[#FFB764]","borderColor":"border-[#F1901F]"},{"name":"R","color":"bg-[#84B5ED]","borderColor":"border-[#246BBE]"},{"name":"Ruby","color":"bg-[#FF8289]","borderColor":"border-[#FF000F]"},{"name":"Rust","color":"bg-[#FFB8AA]","borderColor":"border-[#E43716]"},{"name":"Shell","color":"bg-[#87D4FF]","borderColor":"border-[#389ED7]"},{"name":"Groovy","color":"bg-[#B6D5E5]","borderColor":"border-[#609DBC]"}],"technologies":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Hermes","color":"bg-[#8AEEBD]","borderColor":"border-[#2AB672]"},{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"},{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"},{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"},{"name":"AWS","color":"bg-[#FF9F59]","borderColor":"border-[#EF6703]"},{"name":"Docker","color":"bg-[#B8E0FF]","borderColor":"border-[#2596ED]"},{"name":"Node-RED","color":"bg-[#FF7474]","borderColor":"border-[#8F0101]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Saas","color":"bg-[#6AB8EC]","borderColor":"border-[#2275AD]"},{"name":"Kubernetes-native","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Scala","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Azure","color":"bg-[#4B93FF]","borderColor":"border-[#015ADF]"},{"name":"Jenkins","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Flask","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Nest Js","color":"bg-[#E1224E]","borderColor":"border-[#B9012b]"},{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Socket.IO","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Kotlin","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Gradle","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Groovy","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Markdown","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Shell","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"WebComponents","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Babel","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Storybook","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"AsyncAPI Generator","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"VSCode","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"SmartPaste","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JetBrains","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"IntelliJ IDEA","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Java","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"HTML","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}]}
\ No newline at end of file
+{"languages":[{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"},{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"},{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},{"name":"HTML","color":"bg-[#E2A291]","borderColor":"border-[#E44D26]"},{"name":"C/C++","color":"bg-[#93CDEF]","borderColor":"border-[#0080CC]"},{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"},{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"},{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"},{"name":"Kotlin","color":"bg-[#B1ACDF]","borderColor":"border-[#756BD9]"},{"name":"Scala","color":"bg-[#FFA299]","borderColor":"border-[#DF301F]"},{"name":"Markdown","color":"bg-[#BABEBF]","borderColor":"border-[#445B64]"},{"name":"YAML","color":"bg-[#FFB764]","borderColor":"border-[#F1901F]"},{"name":"R","color":"bg-[#84B5ED]","borderColor":"border-[#246BBE]"},{"name":"Ruby","color":"bg-[#FF8289]","borderColor":"border-[#FF000F]"},{"name":"Rust","color":"bg-[#FFB8AA]","borderColor":"border-[#E43716]"},{"name":"Shell","color":"bg-[#87D4FF]","borderColor":"border-[#389ED7]"},{"name":"Groovy","color":"bg-[#B6D5E5]","borderColor":"border-[#609DBC]"}],"technologies":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Hermes","color":"bg-[#8AEEBD]","borderColor":"border-[#2AB672]"},{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"},{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"},{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"},{"name":"AWS","color":"bg-[#FF9F59]","borderColor":"border-[#EF6703]"},{"name":"Docker","color":"bg-[#B8E0FF]","borderColor":"border-[#2596ED]"},{"name":"Node-RED","color":"bg-[#FF7474]","borderColor":"border-[#8F0101]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Saas","color":"bg-[#6AB8EC]","borderColor":"border-[#2275AD]"},{"name":"Kubernetes-native","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Scala","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Azure","color":"bg-[#4B93FF]","borderColor":"border-[#015ADF]"},{"name":"Jenkins","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Flask","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Nest Js","color":"bg-[#E1224E]","borderColor":"border-[#B9012b]"},{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Socket.IO","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Kotlin","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Gradle","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Groovy","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Markdown","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Shell","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"WebComponents","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Babel","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Storybook","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"AsyncAPI Generator","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JetBrains","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"IntelliJ IDEA","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"VSCode","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"SmartPaste","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"HTML","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Java","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}]}
\ No newline at end of file
diff --git a/config/edit-page-config.json b/config/edit-page-config.json
index dbd5fa50b9eb..32921f145d4e 100644
--- a/config/edit-page-config.json
+++ b/config/edit-page-config.json
@@ -13,7 +13,7 @@
},
{
"value": "",
- "href": "https://github.com/asyncapi/website/blob/master/pages"
+ "href": "https://github.com/asyncapi/website/blob/master/markdown"
},
{
"value": "reference/extensions/",
diff --git a/config/finance/2024/Expenses.yml b/config/finance/2024/Expenses.yml
index 1467852bbb50..bdc166bb2859 100644
--- a/config/finance/2024/Expenses.yml
+++ b/config/finance/2024/Expenses.yml
@@ -87,7 +87,7 @@ August:
- Category: Community Manager
Amount: '2000.00'
- Category: Bounty Program
- Amount: '1600.00'
+ Amount: '1800.00'
- Category: Swag Store
Amount: '2556.42'
- Category: Community Marketing Specialist
@@ -95,4 +95,28 @@ August:
- Category: 3rd Party Services
Amount: '1354.35'
- Category: AsyncAPI Conf on Tour 2024
- Amount: '1384.70'
\ No newline at end of file
+ Amount: '1384.70'
+September:
+ - Category: Bounty Program
+ Amount: '3000.00'
+ - Category: Swag Store
+ Amount: '736.59'
+ - Category: Community Manager
+ Amount: '2000.00'
+ - Category: Community Marketing Specialist
+ Amount: '2000.00'
+ - Category: JSON Schema Sponsorship
+ Amount: '250.00'
+October:
+ - Category: Bounty Program
+ Amount: '1000.00'
+ - Category: Swag Store
+ Amount: '882.12'
+ - Category: AsyncAPI Conf on Tour 2024
+ Amount: '962.01'
+ - Category: Community Manager
+ Amount: '2000.00'
+ - Category: Community Marketing Specialist
+ Amount: '2000.00'
+ - Category: JSON Schema Sponsorship
+ Amount: '250.00'
diff --git a/config/meetings.json b/config/meetings.json
index 4fbe2b0b8e2b..a6db3de6e5be 100644
--- a/config/meetings.json
+++ b/config/meetings.json
@@ -1,60 +1,4 @@
[
- {
- "title": "Essential Building Blocks Working Group",
- "calLink": "https://www.google.com/calendar/event?eid=M2pxNGNwZnRqNGpjcDg2cXVnc3VqZ2wwMHMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
- "url": "https://github.com/asyncapi/community/issues/1294",
- "banner": "",
- "date": "2024-07-16T18:00:00.000Z"
- },
- {
- "title": "Community Meeting",
- "calLink": "https://www.google.com/calendar/event?eid=am5kcG50YW9obGUzcmVucWZqMTQ4NDlsbjQgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
- "url": "https://github.com/asyncapi/community/issues/1305",
- "banner": "https://github.com/asyncapi/community/assets/40604284/65376079-c5e8-467d-b513-21dfaba4570f",
- "date": "2024-07-23T16:00:00.000Z"
- },
- {
- "title": "Marketing WG Meeting",
- "calLink": "https://www.google.com/calendar/event?eid=Z3NzN2JvcjdnY2diMnJpczA4dWMxMGh2ZGcgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
- "url": "https://github.com/asyncapi/community/issues/1309",
- "banner": "",
- "date": "2024-07-16T14:00:00.000Z"
- },
- {
- "title": "Marketing WG Meeting",
- "calLink": "https://www.google.com/calendar/event?eid=b2twOWkyZ3ExcGxnYnAxbzBobzA1MWxvcW8gY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
- "url": "https://github.com/asyncapi/community/issues/1321",
- "banner": "",
- "date": "2024-07-30T14:00:00.000Z"
- },
- {
- "title": "Essential Building Blocks Working Group",
- "calLink": "https://www.google.com/calendar/event?eid=YzYyaHNiNTdqbGQ1OTNybjE1NDZlb2ppODAgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
- "url": "https://github.com/asyncapi/community/issues/1331",
- "banner": "",
- "date": "2024-08-13T18:00:00.000Z"
- },
- {
- "title": "Community Meeting",
- "calLink": "https://www.google.com/calendar/event?eid=aG45bXYwN2I4NWthanBpZ290bzRnbjE1cWMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
- "url": "https://github.com/asyncapi/community/issues/1335",
- "banner": "https://github.com/user-attachments/assets/9d68eacc-c5b3-4f49-a7a2-4120ead380b0",
- "date": "2024-08-06T08:00:00.000Z"
- },
- {
- "title": "Community Meeting",
- "calLink": "https://www.google.com/calendar/event?eid=cnIwc3U0c2o1a3FoaWM0M2VvZXFjNzJvZzQgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
- "url": "https://github.com/asyncapi/community/issues/1336",
- "banner": "https://github.com/user-attachments/assets/7756ebe2-f8c7-4bda-91e3-6a678c1fad99",
- "date": "2024-08-20T16:00:00.000Z"
- },
- {
- "title": "Marketing WG Meeting",
- "calLink": "https://www.google.com/calendar/event?eid=dDNtNmxyODRkNzdvOTdvaWV0NjhtZnYyMGcgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
- "url": "https://github.com/asyncapi/community/issues/1338",
- "banner": "",
- "date": "2024-08-13T14:00:00.000Z"
- },
{
"title": "Essential Building Blocks Working Group",
"calLink": "https://www.google.com/calendar/event?eid=c28zazMxcDk3MThpMWFpNG9lYzRrbmIzNW8gY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
@@ -104,13 +48,6 @@
"banner": "https://github.com/user-attachments/assets/91fca5af-ae9a-46be-aa44-0f2ef20ce34e",
"date": "2024-10-15T08:00:00.000Z"
},
- {
- "title": "Community Meeting",
- "calLink": "https://www.google.com/calendar/event?eid=amw3ZTBwZWllOTViYmMzMGFpNDhtdW9pZDggY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
- "url": "https://github.com/asyncapi/community/issues/1546",
- "banner": "https://github.com/user-attachments/assets/123ebfbe-6662-47ae-b36c-c2ba2e5d40f9",
- "date": "2024-10-29T16:00:00.000Z"
- },
{
"title": "Let's talk about contributing Hacktoberfest Edition",
"calLink": "https://www.google.com/calendar/event?eid=Zm9lMzRvM2F2MGljbWplZDJnNWYwczIwMzQgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
@@ -159,5 +96,47 @@
"url": "https://github.com/asyncapi/community/issues/1562",
"banner": "",
"date": "2024-10-30T10:00:00.000Z"
+ },
+ {
+ "title": "Conference Dry Run",
+ "calLink": "https://www.google.com/calendar/event?eid=ZmR1c25lZG1wc2swOWloNDd2c2VudWc5OTggY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
+ "url": "https://github.com/asyncapi/community/issues/1566",
+ "banner": "",
+ "date": "2024-10-28T16:00:00.000Z"
+ },
+ {
+ "title": "AsyncAPI + WebSocket: The Collaborative Combo ",
+ "calLink": "https://www.google.com/calendar/event?eid=bGo4aXNjNzg3Ym5tbWRtb2wxZ2ZuMmtxN2sgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
+ "url": "https://github.com/asyncapi/community/issues/1569",
+ "banner": "https://github.com/user-attachments/assets/0cdfc741-e61d-4710-bb0a-af9f7485ff9a",
+ "date": "2024-11-01T13:00:00.000Z"
+ },
+ {
+ "title": "Marketing WG Meeting",
+ "calLink": "https://www.google.com/calendar/event?eid=dHVrZHMyYm9kMzcydmJpYW5qMmdpcWU5MW8gY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
+ "url": "https://github.com/asyncapi/community/issues/1589",
+ "banner": "",
+ "date": "2024-11-19T14:00:00.000Z"
+ },
+ {
+ "title": "Design Call",
+ "calLink": "https://www.google.com/calendar/event?eid=ZmFwNGNoZW5kNzkzcDBsaHM2MW4xdDBzNW8gY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
+ "url": "https://github.com/asyncapi/community/issues/1592",
+ "banner": "",
+ "date": "2024-11-21T12:00:00.000Z"
+ },
+ {
+ "title": "Community Meeting",
+ "calLink": "https://www.google.com/calendar/event?eid=NmQzNTJzbW91NTNscGo4dnJoMWNlM3J2YnMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
+ "url": "https://github.com/asyncapi/community/issues/1596",
+ "banner": "https://github.com/user-attachments/assets/ff469484-a2c5-4aa2-8652-782f017947fb",
+ "date": "2024-11-26T16:00:00.000Z"
+ },
+ {
+ "title": "AsyncAPI Mentorship Program Kick-Off",
+ "calLink": "https://www.google.com/calendar/event?eid=aGg5cGtwdGV0YmpzbnBlcmdwYjFqMjU1cTQgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
+ "url": "https://github.com/asyncapi/community/issues/1599",
+ "banner": "https://github.com/user-attachments/assets/739381b2-b7de-4e08-b845-04e5a07ba7e0",
+ "date": "2024-12-03T13:00:00.000Z"
}
]
\ No newline at end of file
diff --git a/config/newsroom_videos.json b/config/newsroom_videos.json
index 6a3893e2316a..004af39ff3b3 100644
--- a/config/newsroom_videos.json
+++ b/config/newsroom_videos.json
@@ -1,32 +1,32 @@
[
{
- "image_url": "https://i.ytimg.com/vi/2WUchTKDPfs/hqdefault.jpg",
- "title": "Marketing WG Meeting, 14:00 UTC Tuesday October 22nd 2024",
- "description": "https://github.com/asyncapi/community/issues/1553.",
- "videoId": "2WUchTKDPfs"
+ "image_url": "https://i.ytimg.com/vi/XirMXiBNaBM/hqdefault.jpg",
+ "title": "Community Meeting, 16:00 UTC Tuesday November 26th 2024",
+ "description": "",
+ "videoId": "XirMXiBNaBM"
},
{
- "image_url": "https://i.ytimg.com/vi/FzRxTpOeIDA/hqdefault.jpg",
- "title": "Design Meeting, 12:00 UTC Thursday October 17th 2024",
- "description": "https://github.com/asyncapi/community/issues/1558.",
- "videoId": "FzRxTpOeIDA"
+ "image_url": "https://i.ytimg.com/vi/Q2cvxsUUgzA/hqdefault.jpg",
+ "title": "AsyncAPI-Powered Event Feeds: 3 Steps to Streaming",
+ "description": "In this livestream, we'll dive into the challenges and benefits of using AsyncAPI for building event-driven architectures.",
+ "videoId": "Q2cvxsUUgzA"
},
{
- "image_url": "https://i.ytimg.com/vi/maMQC97q_6E/hqdefault.jpg",
- "title": "Community Meeting, 8:00 UTC Tuesday October 15th 2024",
- "description": "https://github.com/asyncapi/community/issues/1545.",
- "videoId": "maMQC97q_6E"
+ "image_url": "https://i.ytimg.com/vi/9MaHh4b-rmc/hqdefault.jpg",
+ "title": "Broadening the API Landscape: AsyncAPI and CloudEvents in the Enterprise - Daniel Kocot",
+ "description": "",
+ "videoId": "9MaHh4b-rmc"
},
{
- "image_url": "https://i.ytimg.com/vi/P1ZqaVBb6XM/hqdefault.jpg",
- "title": "AsyncAPI Mentorship Program FAQ, 11:00 UTC Thursday October 10th 2024",
- "description": "https://github.com/asyncapi/community/issues/1550.",
- "videoId": "P1ZqaVBb6XM"
+ "image_url": "https://i.ytimg.com/vi/Q1q6JoFG0zM/hqdefault.jpg",
+ "title": "The Many Meanings Of An AsyncAPI File - Swen-Helge Huber",
+ "description": "",
+ "videoId": "Q1q6JoFG0zM"
},
{
- "image_url": "https://i.ytimg.com/vi/4jaACa7geT0/hqdefault.jpg",
- "title": "Design Onboarding Call, 10:00 UTC Thursday September 12th 2024",
- "description": "https://github.com/asyncapi/community/issues/1372.",
- "videoId": "4jaACa7geT0"
+ "image_url": "https://i.ytimg.com/vi/lCTdXmougTk/hqdefault.jpg",
+ "title": "AsyncAPI and DDD - A Pretty Couple - Dr. Annegret Junker",
+ "description": "",
+ "videoId": "lCTdXmougTk"
}
]
\ No newline at end of file
diff --git a/config/tools-automated.json b/config/tools-automated.json
index a48496cf7dd4..20f6621b8fe2 100644
--- a/config/tools-automated.json
+++ b/config/tools-automated.json
@@ -72,22 +72,19 @@
}
},
{
- "title": "Zod Sockets",
- "description": "Socket.IO solution with I/O validation and the ability to generate AsyncAPI specification and a contract for consumers.",
+ "title": "nestjs-asyncapi",
+ "description": "Utilize decorators to generate AsyncAPI document utilizing DTOs (similar to @nestjs/swagger) and a web UI.",
"links": {
- "websiteUrl": "https://www.npmjs.com/package/zod-sockets",
- "repoUrl": "https://github.com/RobinTail/zod-sockets"
+ "repoUrl": "https://github.com/flamewow/nestjs-asyncapi"
},
"filters": {
- "language": "TypeScript",
+ "language": "Typescript",
"technology": [
"Node.js",
- "TypeScript"
+ "NestJS"
],
"categories": [
- "code-first",
- "dsl",
- "framework"
+ "code-first"
],
"hasCommercial": false,
"isAsyncAPIOwner": false
@@ -116,19 +113,22 @@
}
},
{
- "title": "nestjs-asyncapi",
- "description": "Utilize decorators to generate AsyncAPI document utilizing DTOs (similar to @nestjs/swagger) and a web UI.",
+ "title": "Zod Sockets",
+ "description": "Socket.IO solution with I/O validation and the ability to generate AsyncAPI specification and a contract for consumers.",
"links": {
- "repoUrl": "https://github.com/flamewow/nestjs-asyncapi"
+ "websiteUrl": "https://www.npmjs.com/package/zod-sockets",
+ "repoUrl": "https://github.com/RobinTail/zod-sockets"
},
"filters": {
- "language": "Typescript",
+ "language": "TypeScript",
"technology": [
"Node.js",
- "NestJS"
+ "TypeScript"
],
"categories": [
- "code-first"
+ "code-first",
+ "dsl",
+ "framework"
],
"hasCommercial": false,
"isAsyncAPIOwner": false
@@ -139,6 +139,32 @@
"Code Generators": {
"description": "The following is a list of tools that generate code from an AsyncAPI document; not the other way around.",
"toolsList": [
+ {
+ "title": "ZenWave SDK",
+ "description": "DDD and API-First for Event-Driven Microservices",
+ "links": {
+ "websiteUrl": "https://zenwave360.github.io/",
+ "docsUrl": "https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/",
+ "repoUrl": "https://github.com/zenwave360/zenwave-sdk"
+ },
+ "filters": {
+ "language": "Java",
+ "technology": [
+ "Maven",
+ "CLI",
+ "Spring Cloud Streams",
+ "JHipster JDL"
+ ],
+ "categories": [
+ "code-generator",
+ "dsl",
+ "mocking-and-testing",
+ "cli"
+ ],
+ "hasCommercial": false,
+ "isAsyncAPIOwner": false
+ }
+ },
{
"title": "Golang AsyncAPI Code Generator",
"description": "Generate Go user and application boilerplate from AsyncAPI specifications. Can be called from `go generate` without requirements.\n",
@@ -174,32 +200,6 @@
"hasCommercial": false,
"isAsyncAPIOwner": true
}
- },
- {
- "title": "ZenWave SDK",
- "description": "DDD and API-First for Event-Driven Microservices",
- "links": {
- "websiteUrl": "https://zenwave360.github.io/",
- "docsUrl": "https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/",
- "repoUrl": "https://github.com/zenwave360/zenwave-sdk"
- },
- "filters": {
- "language": "Java",
- "technology": [
- "Maven",
- "CLI",
- "Spring Cloud Streams",
- "JHipster JDL"
- ],
- "categories": [
- "code-generator",
- "dsl",
- "mocking-and-testing",
- "cli"
- ],
- "hasCommercial": false,
- "isAsyncAPIOwner": false
- }
}
]
},
@@ -289,28 +289,6 @@
"DSL": {
"description": "Writing YAML by hand is no fun, and maybe you don't want a GUI, so use a Domain Specific Language to write AsyncAPI in your language of choice.",
"toolsList": [
- {
- "title": "Zod Sockets",
- "description": "Socket.IO solution with I/O validation and the ability to generate AsyncAPI specification and a contract for consumers.",
- "links": {
- "websiteUrl": "https://www.npmjs.com/package/zod-sockets",
- "repoUrl": "https://github.com/RobinTail/zod-sockets"
- },
- "filters": {
- "language": "TypeScript",
- "technology": [
- "Node.js",
- "TypeScript"
- ],
- "categories": [
- "code-first",
- "dsl",
- "framework"
- ],
- "hasCommercial": false,
- "isAsyncAPIOwner": false
- }
- },
{
"title": "ZenWave SDK",
"description": "DDD and API-First for Event-Driven Microservices",
@@ -336,12 +314,51 @@
"hasCommercial": false,
"isAsyncAPIOwner": false
}
+ },
+ {
+ "title": "Zod Sockets",
+ "description": "Socket.IO solution with I/O validation and the ability to generate AsyncAPI specification and a contract for consumers.",
+ "links": {
+ "websiteUrl": "https://www.npmjs.com/package/zod-sockets",
+ "repoUrl": "https://github.com/RobinTail/zod-sockets"
+ },
+ "filters": {
+ "language": "TypeScript",
+ "technology": [
+ "Node.js",
+ "TypeScript"
+ ],
+ "categories": [
+ "code-first",
+ "dsl",
+ "framework"
+ ],
+ "hasCommercial": false,
+ "isAsyncAPIOwner": false
+ }
}
]
},
"Frameworks": {
"description": "The following is a list of API/application frameworks that make use of AsyncAPI.",
"toolsList": [
+ {
+ "title": "Glee",
+ "description": "Glee — The AsyncAPI framework that will make you smile again :)",
+ "links": {
+ "repoUrl": "https://github.com/asyncapi/glee"
+ },
+ "filters": {
+ "technology": [
+ "TypeScript"
+ ],
+ "categories": [
+ "framework"
+ ],
+ "hasCommercial": false,
+ "isAsyncAPIOwner": true
+ }
+ },
{
"title": "Zod Sockets",
"description": "Socket.IO solution with I/O validation and the ability to generate AsyncAPI specification and a contract for consumers.",
@@ -387,34 +404,34 @@
}
},
{
- "title": "GitHub Action for CLI",
- "description": "GitHub Action with generator, validator, converter and others - all in one for your AsyncAPI documents with AsyncAPI CLI as backbone",
+ "title": "GitHub Action for Generator",
+ "description": "CLI to work with your AsyncAPI files. You can validate them and in the future use a generator and even bootstrap a new file. Contributions are welcomed!",
"links": {
- "repoUrl": "https://github.com/asyncapi/github-action-for-cli"
+ "repoUrl": "https://github.com/asyncapi/cli"
},
"filters": {
"technology": [
- "AsyncAPI CLI"
+ "AsyncAPI Generator"
],
"categories": [
- "github-action"
+ "github-actions"
],
"hasCommercial": false,
"isAsyncAPIOwner": true
}
},
{
- "title": "GitHub Action for Generator",
- "description": "CLI to work with your AsyncAPI files. You can validate them and in the future use a generator and even bootstrap a new file. Contributions are welcomed!",
+ "title": "GitHub Action for CLI",
+ "description": "GitHub Action with generator, validator, converter and others - all in one for your AsyncAPI documents with AsyncAPI CLI as backbone",
"links": {
- "repoUrl": "https://github.com/asyncapi/cli"
+ "repoUrl": "https://github.com/asyncapi/github-action-for-cli"
},
"filters": {
"technology": [
- "AsyncAPI Generator"
+ "AsyncAPI CLI"
],
"categories": [
- "github-actions"
+ "github-action"
],
"hasCommercial": false,
"isAsyncAPIOwner": true
@@ -564,25 +581,6 @@
"CLIs": {
"description": "The following is a list of tools that you can work with in terminal or do some CI/CD automation.",
"toolsList": [
- {
- "title": "AsyncAPI CLI",
- "description": "One CLI to rule them all. \nThis is a CLI that aims to integrate all AsyncAPI tools that you need while AsyncAPI document development and maintainance. \nYou can use it to generate docs or code, validate AsyncAPI document and event create new documents.\n",
- "links": {
- "websiteUrl": "https://www.asyncapi.com/tools/cli",
- "repoUrl": "https://github.com/asyncapi/cli"
- },
- "filters": {
- "technology": [
- "TypeScript"
- ],
- "categories": [
- "others",
- "cli"
- ],
- "hasCommercial": false,
- "isAsyncAPIOwner": true
- }
- },
{
"title": "ZenWave SDK",
"description": "DDD and API-First for Event-Driven Microservices",
@@ -609,6 +607,25 @@
"isAsyncAPIOwner": false
}
},
+ {
+ "title": "AsyncAPI CLI",
+ "description": "One CLI to rule them all. \nThis is a CLI that aims to integrate all AsyncAPI tools that you need while AsyncAPI document development and maintainance. \nYou can use it to generate docs or code, validate AsyncAPI document and event create new documents.\n",
+ "links": {
+ "websiteUrl": "https://www.asyncapi.com/tools/cli",
+ "repoUrl": "https://github.com/asyncapi/cli"
+ },
+ "filters": {
+ "technology": [
+ "TypeScript"
+ ],
+ "categories": [
+ "others",
+ "cli"
+ ],
+ "hasCommercial": false,
+ "isAsyncAPIOwner": true
+ }
+ },
{
"title": "AsyncAPI CLI",
"description": "One CLI to rule them all. \nThis is a CLI that aims to integrate all AsyncAPI tools that you need while AsyncAPI document development and maintainance. \nYou can use it to generate docs or code, validate AsyncAPI document and event create new documents.\n",
@@ -656,24 +673,6 @@
"IDE Extensions": {
"description": "The following is a list of extensions for different IDEs like VSCode, IntelliJ IDEA and others",
"toolsList": [
- {
- "title": "asyncapi-preview",
- "description": "VSCode extension that enables you to:\n - Preview documentation generated using you AsyncAPI document. It uses AsyncAPI React component under the hood,\n - Create AsyncAPI documents faster using SmartPaste functionality\n",
- "links": {
- "repoUrl": "https://github.com/asyncapi/vs-asyncapi-preview"
- },
- "filters": {
- "technology": [
- "VSCode",
- "SmartPaste"
- ],
- "categories": [
- "ide-extension"
- ],
- "hasCommercial": false,
- "isAsyncAPIOwner": true
- }
- },
{
"title": "jAsyncAPI - IDEA plugin",
"description": "Idea plugin for the java-asyncapi - Helps to edit and validate AsyncAPI schemas.",
@@ -699,7 +698,7 @@
"title": "asyncapi-preview",
"description": "VSCode extension that enables you to:\n - Preview documentation generated using you AsyncAPI document. It uses AsyncAPI React component under the hood,\n - Create AsyncAPI documents faster using SmartPaste functionality\n",
"links": {
- "repoUrl": "https://github.com/Savio629/testing2"
+ "repoUrl": "https://github.com/asyncapi/vs-asyncapi-preview"
},
"filters": {
"technology": [
@@ -710,7 +709,7 @@
"ide-extension"
],
"hasCommercial": false,
- "isAsyncAPIOwner": false
+ "isAsyncAPIOwner": true
}
}
]
@@ -719,36 +718,15 @@
"description": "The following is a list of templates compatible with AsyncAPI Generator. You can use them to generate apps, clients or documentation from your AsyncAPI documents.",
"toolsList": [
{
- "title": "Java Spring Cloud Stream Template",
- "description": "Java Spring Cloud Stream template for the AsyncAPI Generator",
- "links": {
- "repoUrl": "https://github.com/asyncapi/java-spring-cloud-stream-template"
- },
- "filters": {
- "language": [
- "javascript"
- ],
- "technology": [
- "Spring Cloud Streams",
- "Maven"
- ],
- "categories": [
- "generator-template"
- ],
- "hasCommercial": false,
- "isAsyncAPIOwner": true
- }
- },
- {
- "title": "Node.js Multiprotocol Template",
- "description": "This template generates a server using your AsyncAPI document. It supports multiple different protocols, like Kafka or MQTT. It is designed in the way that generated code is a library and with it's API you can start the server, send messages or register a middleware for listening incoming messages. Runtime message validation included.",
+ "title": "HTML Template",
+ "description": "HTML template for AsyncAPI Generator. Use it to generate a static docs. It is using AsyncAPI React component under the hood.",
"links": {
- "repoUrl": "https://github.com/asyncapi/nodejs-template"
+ "repoUrl": "https://github.com/asyncapi/html-template"
},
"filters": {
"language": "javascript",
"technology": [
- "Node.js"
+ "HTML"
],
"categories": [
"generator-template"
@@ -778,10 +756,10 @@
}
},
{
- "title": "Node.js Websockets Template",
- "description": "Node.js WebSockets template for the AsyncAPI Generator. It showcases how from a single AsyncAPI document you can generate a server and a client at the same time.",
+ "title": "Node.js Multiprotocol Template",
+ "description": "This template generates a server using your AsyncAPI document. It supports multiple different protocols, like Kafka or MQTT. It is designed in the way that generated code is a library and with it's API you can start the server, send messages or register a middleware for listening incoming messages. Runtime message validation included.",
"links": {
- "repoUrl": "https://github.com/asyncapi/nodejs-ws-template"
+ "repoUrl": "https://github.com/asyncapi/nodejs-template"
},
"filters": {
"language": "javascript",
@@ -796,15 +774,18 @@
}
},
{
- "title": "HTML Template",
- "description": "HTML template for AsyncAPI Generator. Use it to generate a static docs. It is using AsyncAPI React component under the hood.",
+ "title": "Java Spring Cloud Stream Template",
+ "description": "Java Spring Cloud Stream template for the AsyncAPI Generator",
"links": {
- "repoUrl": "https://github.com/asyncapi/html-template"
+ "repoUrl": "https://github.com/asyncapi/java-spring-cloud-stream-template"
},
"filters": {
- "language": "javascript",
+ "language": [
+ "javascript"
+ ],
"technology": [
- "HTML"
+ "Spring Cloud Streams",
+ "Maven"
],
"categories": [
"generator-template"
@@ -834,6 +815,24 @@
"hasCommercial": false,
"isAsyncAPIOwner": true
}
+ },
+ {
+ "title": "Node.js Websockets Template",
+ "description": "Node.js WebSockets template for the AsyncAPI Generator. It showcases how from a single AsyncAPI document you can generate a server and a client at the same time.",
+ "links": {
+ "repoUrl": "https://github.com/asyncapi/nodejs-ws-template"
+ },
+ "filters": {
+ "language": "javascript",
+ "technology": [
+ "Node.js"
+ ],
+ "categories": [
+ "generator-template"
+ ],
+ "hasCommercial": false,
+ "isAsyncAPIOwner": true
+ }
}
]
},
diff --git a/config/tools.json b/config/tools.json
index ccb2d7a5f45f..0265d466afdb 100644
--- a/config/tools.json
+++ b/config/tools.json
@@ -1 +1 @@
-{"APIs":{"description":"The following is a list of APIs that expose functionality related to AsyncAPI.","toolsList":[{"title":"API Tracker - AsyncAPI specs","description":"Explore APIs and companies with public AsyncAPI specifications.","links":{"websiteUrl":"https://apitracker.io/specifications/asyncapi","repoUrl":""},"filters":{"categories":["api","directory"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"AsyncAPI Server API","description":"Server API providing official AsyncAPI tools","links":{"websiteUrl":"https://api.asyncapi.com/v1","docsUrl":"https://api.asyncapi.com/v1/docs","repoUrl":"https://github.com/asyncapi/server-api"},"filters":{"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["api"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"AsyncAPI-Directory by APIs.guru","description":"Directory of asynchronous API specifications in AsyncAPI format.","links":{"websiteUrl":"https://apis.guru/asyncapi-directory/","repoUrl":"https://github.com/APIs-guru/asyncapi-directory"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["api","directory"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"SIO-AsyncAPI","description":"This is code-first approach to generate AsyncAPI specification from Socket.IO server.","links":{"websiteUrl":"https://github.com/daler-rahimov/sio-asyncapi","docsUrl":"https://github.com/daler-rahimov/sio-asyncapi","repoUrl":"https://github.com/daler-rahimov/sio-asyncapi"},"filters":{"language":[{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"}],"technology":[{"name":"Socket.IO","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Flask","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"}],"categories":["code-first","api"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Code-first tools":{"description":"The following is a list of tools that generate AsyncAPI documents from your code.","toolsList":[{"title":"AsyncAPI.Net","description":"The AsyncAPI.NET SDK contains a useful object model for AsyncAPI documents in .NET along with common serializers to extract raw OpenAPI JSON and YAML documents from the model.","links":{"websiteUrl":"https://github.com/LEGO/AsyncAPI.NET/","repoUrl":"https://github.com/LEGO/AsyncAPI.NET"},"filters":{"language":[{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"}],"technology":[{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"}],"categories":["converters","code-first","validator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"AsyncApi.Net.Generator","description":"Code-first AsyncAPI documentation generator and ui","links":{"repoUrl":"https://github.com/yurvon-screamo/asyncapi.net"},"filters":{"language":[{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"}],"technology":[{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"EventBridge Atlas","description":"Tool that translates your AWS EventBridge Schemas into an AsyncAPI document and a web UI.","links":{"websiteUrl":"https://eventbridge-atlas.netlify.app/","repoUrl":"https://github.com/boyney123/eventbridge-atlas"},"filters":{"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"FastStream","description":"A powerful and easy-to-use Python framework for building asynchronous services interacting with event streams such as Apache Kafka, RabbitMQ and NATS.","links":{"websiteUrl":"https://faststream.airt.ai","repoUrl":"https://github.com/airtai/FastStream"},"filters":{"language":[{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"}],"categories":["code-first","framework"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"Go AsyncAPI","description":"This library helps to create AsyncAPI spec from your Go message structures. It uses reflection to translate Go structures in JSON Schema definitions and arrange them in AsyncAPI schema.","links":{"repoUrl":"https://github.com/swaggest/go-asyncapi"},"filters":{"language":[{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"Java AsyncAPI","description":"This tool stores modules, which simplifies interacting with AsyncAPI in jvm ecosystem.","links":{"repoUrl":"https://github.com/asyncapi/jasyncapi"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Kotlin","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"KnstEventBus","description":"AsyncApi code-first tools for c#. Generates document and view.","links":{"repoUrl":"https://github.com/d0972058277/KnstEventBus"},"filters":{"language":[{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"}],"technology":[{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"},{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"}],"categories":["code-first","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Kotlin AsyncAPI","description":"The Kotlin AsyncAPI project aims to provide convenience tools for generating and serving AsyncAPI documentation. The core of this project is a Kotlin DSL for building the specification in a typesafe way.","links":{"repoUrl":"https://github.com/OpenFolder/kotlin-asyncapi"},"filters":{"language":[{"name":"Kotlin","color":"bg-[#B1ACDF]","borderColor":"border-[#756BD9]"}],"technology":[{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"nestjs-asyncapi","description":"Utilize decorators to generate AsyncAPI document utilizing DTOs (similar to @nestjs/swagger) and a web UI.","links":{"repoUrl":"https://github.com/flamewow/nestjs-asyncapi"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Nest Js","color":"bg-[#E1224E]","borderColor":"border-[#B9012b]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Neuroglia AsyncAPI","description":"A .NET SDK for the Async API specification. Automatically generates and serves AsyncAPI documents based on your code. Includes fluent-builders to create AsyncAPI documents from scratch, and provides a web-based GUI to browse generated documents.","links":{"repoUrl":"https://github.com/neuroglia-io/AsyncApi"},"filters":{"language":[{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"}],"technology":[{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Saunter","description":"Saunter is an AsyncAPI documentation generator for dotnet. Generates (and hosts) an AsyncAPI schema document from your code.","links":{"repoUrl":"https://github.com/tehmantra/saunter"},"filters":{"language":[{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"}],"technology":[{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"SIO-AsyncAPI","description":"This is code-first approach to generate AsyncAPI specification from Socket.IO server.","links":{"websiteUrl":"https://github.com/daler-rahimov/sio-asyncapi","docsUrl":"https://github.com/daler-rahimov/sio-asyncapi","repoUrl":"https://github.com/daler-rahimov/sio-asyncapi"},"filters":{"language":[{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"}],"technology":[{"name":"Socket.IO","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Flask","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"}],"categories":["code-first","api"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Springwolf","description":"Automated documentation for async APIs built with Spring Boot. Like Springfox for AsyncAPI. Auto-generates an AsyncAPI document and a web UI.","links":{"websiteUrl":"https://www.springwolf.dev","repoUrl":"https://github.com/springwolf/springwolf-core"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"},{"name":"Gradle","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-first","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"sttp tapir","description":"Library for describing HTTP endpoints, and then interpreting them as a server, client, or documentation","links":{"websiteUrl":"https://tapir.softwaremill.com/","repoUrl":"https://github.com/softwaremill/tapir"},"filters":{"language":[{"name":"Scala","color":"bg-[#FFA299]","borderColor":"border-[#DF301F]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"Zod Sockets","description":"Socket.IO solution with I/O validation and the ability to generate AsyncAPI specification and a contract for consumers.","links":{"websiteUrl":"https://www.npmjs.com/package/zod-sockets","repoUrl":"https://github.com/RobinTail/zod-sockets"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-first","dsl","framework"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Code Generators":{"description":"The following is a list of tools that generate code from an AsyncAPI document; not the other way around.","toolsList":[{"title":"AsyncAPI Generator","description":"Generator is a tool that you can use to generate whatever you want basing on the AsyncAPI specification file as an input.","links":{"docsUrl":"https://www.asyncapi.com/docs/tools/generator","repoUrl":"https://github.com/asyncapi/generator"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["code-generator","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"AsyncAPI Modelina","description":"Generate payload models into Java, TypeScript, Go, etc, you name it, from AsyncAPI documents. This tool gives you full control over the models through high customization","links":{"websiteUrl":"https://modelina.org","docsUrl":"https://github.com/asyncapi/modelina/tree/master/docs","repoUrl":"https://github.com/asyncapi/modelina"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"},{"name":"Docker","color":"bg-[#B8E0FF]","borderColor":"border-[#2596ED]"}],"categories":["code-generator"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"Golang AsyncAPI Code Generator","description":"Generate Go user and application boilerplate from AsyncAPI specifications. Can be called from `go generate` without requirements.\n","links":{"repoUrl":"https://github.com/lerenn/asyncapi-codegen"},"filters":{"language":[{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"}],"categories":["code-generator"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"MultiAPI Generator","description":"This is a plugin designed to help developers automatizing the creation of code classes from YML files based on AsyncApi and OpenAPI. It is presented in 2 flavours Maven and Gradle","links":{"repoUrl":"https://github.com/sngular/scs-multiapi-plugin"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Groovy","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"}],"categories":["code-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Node-RED AsyncAPI plugin","description":"A plugin for generating and configuring nodes for Kafka, MQTT, AMQP, etc. automatically from an AsyncAPI specification.","links":{"repoUrl":"https://github.com/dalelane/node-red-contrib-plugin-asyncapi"},"filters":{"technology":[{"name":"Node-RED","color":"bg-[#FF7474]","borderColor":"border-[#8F0101]"}],"categories":["code-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"ZenWave SDK","description":"DDD and API-First for Event-Driven Microservices","links":{"websiteUrl":"https://zenwave360.github.io/","docsUrl":"https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/","repoUrl":"https://github.com/zenwave360/zenwave-sdk"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-generator","dsl","mocking-and-testing","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Converters":{"description":"The following is a list of tools that do not yet belong to any specific category but are also useful for the community.","toolsList":[{"title":"AsyncAPI-format","description":"Format an AsyncAPI document by ordering, casing, formatting, and filtering fields.","links":{"repoUrl":"https://github.com/thim81/asyncapi-format"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["converter","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"AsyncAPI.Net","description":"The AsyncAPI.NET SDK contains a useful object model for AsyncAPI documents in .NET along with common serializers to extract raw OpenAPI JSON and YAML documents from the model.","links":{"websiteUrl":"https://github.com/LEGO/AsyncAPI.NET/","repoUrl":"https://github.com/LEGO/AsyncAPI.NET"},"filters":{"language":[{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"}],"technology":[{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"}],"categories":["converters","code-first","validator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Converter","description":"Converts old versions of AsyncAPI files into the latest version.","links":{"repoUrl":"https://github.com/asyncapi/converter-js"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["converter"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"Converter-Go","description":"The AsyncAPI Converter converts AsyncAPI documents from versions 1.0.0, 1.1.0 and 1.2.0 to version 2.0.0. It supports both json and yaml formats on input and output. By default, the AsyncAPI Converter converts a document into the json format.","links":{"repoUrl":"https://github.com/asyncapi/converter-go"},"filters":{"language":[{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"}],"categories":["converter"],"hasCommercial":false,"isAsyncAPIOwner":true,"technology":[]}}]},"Directories":{"description":"The following is a list of directories that index public AsyncAPI documents.","toolsList":[{"title":"API Tracker - AsyncAPI specs","description":"Explore APIs and companies with public AsyncAPI specifications.","links":{"websiteUrl":"https://apitracker.io/specifications/asyncapi","repoUrl":""},"filters":{"categories":["api","directory"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"AsyncAPI-Directory by APIs.guru","description":"Directory of asynchronous API specifications in AsyncAPI format.","links":{"websiteUrl":"https://apis.guru/asyncapi-directory/","repoUrl":"https://github.com/APIs-guru/asyncapi-directory"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["api","directory"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Documentation Generators":{"description":"The following is a list of tools that generate human-readable documentation from an AsyncAPI document.","toolsList":[{"title":"AsyncAPI Generator","description":"Generator is a tool that you can use to generate whatever you want basing on the AsyncAPI specification file as an input.","links":{"docsUrl":"https://www.asyncapi.com/docs/tools/generator","repoUrl":"https://github.com/asyncapi/generator"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Markdown","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-generator","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"asyncapi-asciidoc-template","description":"Asciidoc template for the asyncapi generator","links":{"repoUrl":"https://gitlab.com/djencks/asyncapi-asciidoc-template"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"}],"categories":["documentation-generator","generator-template"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Bump.sh","description":"OpenAPI 2 & 3 / AsyncAPI 2 documentation generator, with automatic changelog and visual diff.","links":{"websiteUrl":"https://bump.sh/","docsUrl":"https://docs.bump.sh/help/","repoUrl":""},"filters":{"categories":["documentation-generator"],"hasCommercial":true,"isAsyncAPIOwner":false,"technology":[]}},{"title":"Cupid","description":"A library that focuses on finding and analyzing the relationships between AsyncAPI documents. It outputs a map of the system architecture.","links":{"repoUrl":"https://github.com/asyncapi/cupid"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"KnstEventBus","description":"AsyncApi code-first tools for c#. Generates document and view.","links":{"repoUrl":"https://github.com/d0972058277/KnstEventBus"},"filters":{"language":[{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"}],"technology":[{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"},{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"}],"categories":["code-first","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Springwolf","description":"Automated documentation for async APIs built with Spring Boot. Like Springfox for AsyncAPI. Auto-generates an AsyncAPI document and a web UI.","links":{"websiteUrl":"https://www.springwolf.dev","repoUrl":"https://github.com/springwolf/springwolf-core"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"},{"name":"Gradle","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-first","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Widdershins","description":"OpenAPI 3.0 / Swagger 2.0 / AsyncAPI 1.0 definition to Slate / Shins compatible markdown.","links":{"websiteUrl":"https://mermade.github.io/reslate/","repoUrl":"https://github.com/Mermade/widdershins"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Shell","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Editors":{"description":"The following is a list of editors or related tools that allow editing of AsyncAPI document.","toolsList":[{"title":"AsyncAPI Studio","description":"Visually design your AsyncAPI files and event-driven architecture.","links":{"websiteUrl":"https://studio.asyncapi.com","repoUrl":"https://github.com/asyncapi/studio"},"filters":{"technology":[{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"},{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["editor"],"hasCommercial":false,"isAsyncAPIOwner":true}}]},"UI components":{"description":"The following is a list of UI components to view AsyncAPI documents.","toolsList":[{"title":"Api-Diff-Viewer","description":"React component to view the difference between two Json based API documents. Supported specifications: JsonSchema, OpenAPI 3.x, AsyncAPI 2.x.","links":{"repoUrl":"https://github.com/udamir/api-diff-viewer","websiteUrl":"https://api-diff-viewer.vercel.app/"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"},{"name":"Babel","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Storybook","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["ui-component"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"AsyncAPI React component","description":"React component for rendering documentation from your specification in real-time in the browser. It also provides a WebComponent and bundle for Angular and Vue","links":{"repoUrl":"https://github.com/asyncapi/asyncapi-react"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"},{"name":"WebComponents","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["ui-component"],"hasCommercial":false,"isAsyncAPIOwner":true}}]},"DSL":{"description":"Writing YAML by hand is no fun, and maybe you don't want a GUI, so use a Domain Specific Language to write AsyncAPI in your language of choice.","toolsList":[{"title":"BOATS","description":"Compile your single AsyncAPI file from multiple YAML files with BOATS and with the help of the template engine Nunjucks, plus a many extra helpers to automate much of the donkey work.","links":{"repoUrl":"https://github.com/j-d-carmichael/boats"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["dsl"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"ZenWave SDK","description":"DDD and API-First for Event-Driven Microservices","links":{"websiteUrl":"https://zenwave360.github.io/","docsUrl":"https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/","repoUrl":"https://github.com/zenwave360/zenwave-sdk"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-generator","dsl","mocking-and-testing","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Zod Sockets","description":"Socket.IO solution with I/O validation and the ability to generate AsyncAPI specification and a contract for consumers.","links":{"websiteUrl":"https://www.npmjs.com/package/zod-sockets","repoUrl":"https://github.com/RobinTail/zod-sockets"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-first","dsl","framework"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Frameworks":{"description":"The following is a list of API/application frameworks that make use of AsyncAPI.","toolsList":[{"title":"Asynction","description":"SocketIO server framework driven by the AsyncAPI specification. Asynction guarantees that your API will work in accordance with its AsyncAPI documentation. Built on top of Flask-SocketIO.","links":{"websiteUrl":"https://pypi.org/project/asynction/","repoUrl":"https://github.com/dedoussis/asynction"},"filters":{"language":[{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"}],"technology":[{"name":"Flask","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"}],"categories":["framework"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"FastStream","description":"A powerful and easy-to-use Python framework for building asynchronous services interacting with event streams such as Apache Kafka, RabbitMQ and NATS.","links":{"websiteUrl":"https://faststream.airt.ai","repoUrl":"https://github.com/airtai/FastStream"},"filters":{"language":[{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"}],"categories":["code-first","framework"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"Zod Sockets","description":"Socket.IO solution with I/O validation and the ability to generate AsyncAPI specification and a contract for consumers.","links":{"websiteUrl":"https://www.npmjs.com/package/zod-sockets","repoUrl":"https://github.com/RobinTail/zod-sockets"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-first","dsl","framework"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"GitHub Actions":{"description":"The following is a list of GitHub Actions that you can use in your workflows","toolsList":[{"title":"API documentation generation on Bump.sh","description":"With this GitHub Action you can automatically generate your API reference (with the changelog and diff) on Bump.sh from any AsyncAPI file.","links":{"websiteUrl":"https://github.com/marketplace/actions/api-documentation-on-bump","repoUrl":"https://github.com/bump-sh/github-action"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"categories":["github-action"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"AsyncAPI GitHub Action","description":"This action validates if the AsyncAPI schema file is valid or not.","links":{"websiteUrl":"https://github.com/marketplace/actions/asyncapi-github-action","repoUrl":"https://github.com/WaleedAshraf/asyncapi-github-action"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["github-action","validator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Automated version bump for AsyncAPI documents","description":"With this GitHub Action, you can automatically bump the version based on commit messages, which is similar to what semantic-release is for NPM.","links":{"websiteUrl":"https://github.com/marketplace/actions/automated-version-bump-for-asyncapi","repoUrl":"https://github.com/bump-sh/github-action"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["github-action"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"GitHub Action for CLI","description":"GitHub Action with generator, validator, converter and others - all in one for your AsyncAPI documents with AsyncAPI CLI as backbone","links":{"repoUrl":"https://github.com/asyncapi/github-action-for-cli"},"filters":{"technology":[{"name":"AsyncAPI Generator","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["github-action"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"GitHub Action for Generator","description":null,"links":{"repoUrl":"https://github.com/actions-marketplace-validations/asyncapi_github-action-for-generator"},"filters":{"technology":[{"name":"AsyncAPI Generator","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["github-action"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"GitHub Action for Generator","description":"CLI to work with your AsyncAPI files. You can validate them and in the future use a generator and even bootstrap a new file. Contributions are welcomed!","links":{"repoUrl":"https://github.com/asyncapi/cli"},"filters":{"technology":[{"name":"AsyncAPI Generator","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["github-actions"],"hasCommercial":false,"isAsyncAPIOwner":true}}]},"Mocking and Testing":{"description":"The tools below take specification documents as input, then publish fake messages to broker destinations for simulation purposes. They may also check that publisher messages are compliant with schemas.","toolsList":[{"title":"Microcks","description":"Mocking and testing platform for API and microservices. Turn your AsyncAPI, OpenAPI contract examples, or Postman collections into ready-to-use mocks. Use examples to simulate and validate received messages according to schema elements.","links":{"websiteUrl":"https://microcks.io/","repoUrl":"https://github.com/microcks/microcks"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Kubernetes-native","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Saas","color":"bg-[#6AB8EC]","borderColor":"border-[#2275AD]"}],"categories":["mocking-and-testing"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"MultiAPI Converter","description":"Use AsyncAPI definition, to generate Spring Cloud Contract producer validation or consumer stubs, using maven.","links":{"repoUrl":"https://github.com/sngular/scc-multiapi-converter"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"}],"categories":["mocking-and-testing"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Specmatic","description":"An API contract testing tool that helps ensure the correctness APIs by automatically generating test cases and verifying them against the API spec. It simplifies the process of testing APIs and reduces the likelihood of bugs and compatibility issues.","links":{"websiteUrl":"https://specmatic.io","docsUrl":"https://specmatic.io/documentation/","repoUrl":"https://github.com/znsio/specmatic"},"filters":{"language":[{"name":"Kotlin","color":"bg-[#B1ACDF]","borderColor":"border-[#756BD9]"}],"technology":[{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"}],"categories":["mocking-and-testing"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Virtualan","description":"Mocking and testing platform for API and microservices. Allows you to create and setup mocks for OpenAPI and AsyncAPI contracts. Shows how to setup and create AsyncAPI GitHub Reference Examples and OpenAPI GitHub Reference Examples.","links":{"websiteUrl":"https://www.virtualan.io/index.html","repoUrl":"https://github.com/virtualansoftware"},"filters":{"technology":[{"name":"Kubernetes-native","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"}],"categories":["mocking-and-testing"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"ZenWave SDK","description":"DDD and API-First for Event-Driven Microservices","links":{"websiteUrl":"https://zenwave360.github.io/","docsUrl":"https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/","repoUrl":"https://github.com/zenwave360/zenwave-sdk"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-generator","dsl","mocking-and-testing","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Validators":{"description":"The following is a list of tools that validate AsyncAPI documents.","toolsList":[{"title":"AMF","description":"AMF (AML Modeling Framework) is an open-source library capable of parsing and validating AML metadata documents.","links":{"docsUrl":"https://a.ml/docs/","repoUrl":"https://github.com/aml-org/amf"},"filters":{"language":[{"name":"Scala","color":"bg-[#FFA299]","borderColor":"border-[#DF301F]"}],"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"AsyncAPI GitHub Action","description":"This action validates if the AsyncAPI schema file is valid or not.","links":{"websiteUrl":"https://github.com/marketplace/actions/asyncapi-github-action","repoUrl":"https://github.com/WaleedAshraf/asyncapi-github-action"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["github-action","validator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"AsyncAPI Parser","description":"Use this package to parse and validate AsyncAPI documents —either YAML or JSON— in your Node.js or browser application. Updated bundle for the browser is always attached to the GitHub Release.","links":{"repoUrl":"https://github.com/asyncapi/parser-js"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"AsyncAPI Parser","description":"The AsyncAPI Parser validates AsyncAPI documents according to dedicated schemas.","links":{"repoUrl":"https://github.com/asyncapi/parser-go"},"filters":{"language":[{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"}],"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":true,"technology":[]}},{"title":"AsyncAPI Parser Wrapper","description":"Use this library to parse and validate AsyncAPI documents — either YAML or JSON — in your Java application. It is a Java wrapper over JavaScript Parser implemented using J2V8.","links":{"repoUrl":"https://github.com/AsyncAPITools/parser-java-wrapper"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"AsyncAPI Validation","description":"Message validation package for YAML and JSON AsyncAPI documents.","links":{"repoUrl":"https://github.com/Elhebert/asyncapi-validation"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"asyncapi-validator","description":"It allows you to validate the schema of your messages against your AsyncAPI schema definition. You can use it with Kafka, RabbitMQ or any other messaging/queue.","links":{"repoUrl":"https://github.com/WaleedAshraf/asyncapi-validator"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"AsyncAPI.Net","description":"The AsyncAPI.NET SDK contains a useful object model for AsyncAPI documents in .NET along with common serializers to extract raw OpenAPI JSON and YAML documents from the model.","links":{"websiteUrl":"https://github.com/LEGO/AsyncAPI.NET/","repoUrl":"https://github.com/LEGO/AsyncAPI.NET"},"filters":{"language":[{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"}],"technology":[{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"}],"categories":["converters","code-first","validator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Spectral","description":"A flexible JSON/YAML linter for creating automated style guides, with baked in support for OpenAPI v3.1, v3.0, and v2.0 as well as AsyncAPI v2.x.","links":{"repoUrl":"https://github.com/stoplightio/spectral"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Compare tools":{"description":"The following is a list of tools that compare AsyncAPI documents.","toolsList":[{"title":"Api-Smart-Diff","description":"It allows you to compare two API documents and classify changes. Supported API specifications: OpenAPI, AsyncAPI, JsonSchema.","links":{"repoUrl":"https://github.com/udamir/api-smart-diff"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"categories":["compare-tool"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"AsyncAPI Diff","description":"Diff is a library that compares two AsyncAPI Documents and provides information about the differences by pointing out explicitly information like breaking changes.","links":{"repoUrl":"https://github.com/asyncapi/diff"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["compare-tool"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"jasyncapicmp","description":"Tool for comparing two AsyncAPI versions and evaluating compatibility.","links":{"websiteUrl":"https://siom79.github.io/jasyncapicmp/","docsUrl":"https://github.com/siom79/jasyncapicmp","repoUrl":"https://github.com/siom79/jasyncapicmp"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"}],"categories":["compare-tool"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"jasyncapicmp","description":"Tool/library/maven-plugin for comparing two AsyncAPI versions and evaluating compatibility.","links":{"websiteUrl":"https://siom79.github.io/jasyncapicmp/","repoUrl":"https://github.com/siom79/jasyncapicmp"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"}],"categories":["compare-tool"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"CLIs":{"description":"The following is a list of tools that you can work with in terminal or do some CI/CD automation.","toolsList":[{"title":"AsyncAPI CLI","description":"One CLI to rule them all. \nThis is a CLI that aims to integrate all AsyncAPI tools that you need while AsyncAPI document development and maintainance. \nYou can use it to generate docs or code, validate AsyncAPI document and event create new documents.\n","links":{"websiteUrl":"https://www.asyncapi.com/tools/cli","repoUrl":"https://github.com/asyncapi/cli"},"filters":{"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["others","cli"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"AsyncAPI CLI","description":"One CLI to rule them all. \nThis is a CLI that aims to integrate all AsyncAPI tools that you need while AsyncAPI document development and maintainance. \nYou can use it to generate docs or code, validate AsyncAPI document and event create new documents.\n","links":{"websiteUrl":"https://www.asyncapi.com/tools/cli","repoUrl":"https://github.com/hkirat/asyncapi-fork"},"filters":{"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["others","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"AsyncAPI-format","description":"Format an AsyncAPI document by ordering, casing, formatting, and filtering fields.","links":{"repoUrl":"https://github.com/asyncapi/converter-go"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["converter","cli"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"ZenWave SDK","description":"DDD and API-First for Event-Driven Microservices","links":{"websiteUrl":"https://zenwave360.github.io/","docsUrl":"https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/","repoUrl":"https://github.com/zenwave360/zenwave-sdk"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-generator","dsl","mocking-and-testing","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Bundlers":{"description":"The following is a list of tools that you can work with to bundle AsyncAPI documents.","toolsList":[{"title":"Api-ref-bundler","description":"It allows you bundle/dereference external/internal $refs in Json based API document. Supported specifications: OpenAPI, AsyncAPI, JsonSchema.","links":{"repoUrl":"https://github.com/udamir/api-ref-bundler"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["bundler"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"AsyncAPI Bundler","description":"Combine multiple AsyncAPI specification files into one.","links":{"repoUrl":"https://github.com/asyncapi/bundler"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["bundler"],"hasCommercial":false,"isAsyncAPIOwner":true}}]},"IDE Extensions":{"description":"The following is a list of extensions for different IDEs like VSCode, IntelliJ IDEA and others","toolsList":[{"title":"asyncapi-preview","description":"VSCode extension that enables you to:\n - Preview documentation generated using you AsyncAPI document. It uses AsyncAPI React component under the hood,\n - Create AsyncAPI documents faster using SmartPaste functionality\n","links":{"repoUrl":"https://github.com/asyncapi/vs-asyncapi-preview"},"filters":{"technology":[{"name":"VSCode","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"SmartPaste","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["ide-extension"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"asyncapi-preview","description":"VSCode extension that enables you to:\n - Preview documentation generated using you AsyncAPI document. It uses AsyncAPI React component under the hood,\n - Create AsyncAPI documents faster using SmartPaste functionality\n","links":{"repoUrl":"https://github.com/Savio629/testing2"},"filters":{"technology":[{"name":"VSCode","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"SmartPaste","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["ide-extension"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"jAsyncAPI - IDEA plugin","description":"Idea plugin for the java-asyncapi - Helps to edit and validate AsyncAPI schemas.","links":{"websiteUrl":"https://plugins.jetbrains.com/plugin/15673-asyncapi","docsUrl":"https://github.com/asyncapi/jasyncapi-idea-plugin#usage","repoUrl":"https://github.com/asyncapi/jasyncapi-idea-plugin"},"filters":{"language":[{"name":"Kotlin","color":"bg-[#B1ACDF]","borderColor":"border-[#756BD9]"}],"technology":[{"name":"JetBrains","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"IntelliJ IDEA","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["ide-extension"],"hasCommercial":false,"isAsyncAPIOwner":true}}]},"AsyncAPI Generator Templates":{"description":"The following is a list of templates compatible with AsyncAPI Generator. You can use them to generate apps, clients or documentation from your AsyncAPI documents.","toolsList":[{"title":"HTML Template","description":"HTML template for AsyncAPI Generator. Use it to generate a static docs. It is using AsyncAPI React component under the hood.","links":{"repoUrl":"https://github.com/asyncapi/html-template"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"HTML","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["generator-template"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"Java Spring Cloud Stream Template","description":"Java Spring Cloud Stream template for the AsyncAPI Generator","links":{"repoUrl":"https://github.com/asyncapi/java-spring-cloud-stream-template"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"}],"categories":["generator-template"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"Java Spring Template","description":"Java Spring template for the AsyncAPI Generator","links":{"repoUrl":"https://github.com/asyncapi/java-spring-template"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Gradle","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["generator-template"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"Java Template","description":"Java template for the AsyncAPI Generator","links":{"repoUrl":"https://github.com/asyncapi/java-template"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Java","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["generator-template"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"Node.js Multiprotocol Template","description":"This template generates a server using your AsyncAPI document. It supports multiple different protocols, like Kafka or MQTT. It is designed in the way that generated code is a library and with it's API you can start the server, send messages or register a middleware for listening incoming messages. Runtime message validation included.","links":{"repoUrl":"https://github.com/asyncapi/nodejs-template"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["generator-template"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"Node.js Websockets Template","description":"Node.js WebSockets template for the AsyncAPI Generator. It showcases how from a single AsyncAPI document you can generate a server and a client at the same time.","links":{"repoUrl":"https://github.com/asyncapi/nodejs-ws-template"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["generator-template"],"hasCommercial":false,"isAsyncAPIOwner":true}}]},"Others":{"description":"The following is a list of tools that comes under Other category.","toolsList":[{"title":"AsyncAPI CLI","description":"One CLI to rule them all. \nThis is a CLI that aims to integrate all AsyncAPI tools that you need while AsyncAPI document development and maintainance. \nYou can use it to generate docs or code, validate AsyncAPI document and event create new documents.\n","links":{"websiteUrl":"https://www.asyncapi.com/tools/cli","repoUrl":"https://github.com/asyncapi/cli"},"filters":{"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["others","cli"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"AsyncAPI CLI","description":"One CLI to rule them all. \nThis is a CLI that aims to integrate all AsyncAPI tools that you need while AsyncAPI document development and maintainance. \nYou can use it to generate docs or code, validate AsyncAPI document and event create new documents.\n","links":{"websiteUrl":"https://www.asyncapi.com/tools/cli","repoUrl":"https://github.com/hkirat/asyncapi-fork"},"filters":{"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["others","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}}]}}
\ No newline at end of file
+{"APIs":{"description":"The following is a list of APIs that expose functionality related to AsyncAPI.","toolsList":[{"title":"API Tracker - AsyncAPI specs","description":"Explore APIs and companies with public AsyncAPI specifications.","links":{"websiteUrl":"https://apitracker.io/specifications/asyncapi","repoUrl":""},"filters":{"categories":["api","directory"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"AsyncAPI Server API","description":"Server API providing official AsyncAPI tools","links":{"websiteUrl":"https://api.asyncapi.com/v1","docsUrl":"https://api.asyncapi.com/v1/docs","repoUrl":"https://github.com/asyncapi/server-api"},"filters":{"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["api"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"AsyncAPI-Directory by APIs.guru","description":"Directory of asynchronous API specifications in AsyncAPI format.","links":{"websiteUrl":"https://apis.guru/asyncapi-directory/","repoUrl":"https://github.com/APIs-guru/asyncapi-directory"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["api","directory"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"SIO-AsyncAPI","description":"This is code-first approach to generate AsyncAPI specification from Socket.IO server.","links":{"websiteUrl":"https://github.com/daler-rahimov/sio-asyncapi","docsUrl":"https://github.com/daler-rahimov/sio-asyncapi","repoUrl":"https://github.com/daler-rahimov/sio-asyncapi"},"filters":{"language":[{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"}],"technology":[{"name":"Socket.IO","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Flask","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"}],"categories":["code-first","api"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Code-first tools":{"description":"The following is a list of tools that generate AsyncAPI documents from your code.","toolsList":[{"title":"AsyncAPI.Net","description":"The AsyncAPI.NET SDK contains a useful object model for AsyncAPI documents in .NET along with common serializers to extract raw OpenAPI JSON and YAML documents from the model.","links":{"websiteUrl":"https://github.com/LEGO/AsyncAPI.NET/","repoUrl":"https://github.com/LEGO/AsyncAPI.NET"},"filters":{"language":[{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"}],"technology":[{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"}],"categories":["converters","code-first","validator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"AsyncApi.Net.Generator","description":"Code-first AsyncAPI documentation generator and ui","links":{"repoUrl":"https://github.com/yurvon-screamo/asyncapi.net"},"filters":{"language":[{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"}],"technology":[{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"EventBridge Atlas","description":"Tool that translates your AWS EventBridge Schemas into an AsyncAPI document and a web UI.","links":{"websiteUrl":"https://eventbridge-atlas.netlify.app/","repoUrl":"https://github.com/boyney123/eventbridge-atlas"},"filters":{"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"FastStream","description":"A powerful and easy-to-use Python framework for building asynchronous services interacting with event streams such as Apache Kafka, RabbitMQ and NATS.","links":{"websiteUrl":"https://faststream.airt.ai","repoUrl":"https://github.com/airtai/FastStream"},"filters":{"language":[{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"}],"categories":["code-first","framework"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"Go AsyncAPI","description":"This library helps to create AsyncAPI spec from your Go message structures. It uses reflection to translate Go structures in JSON Schema definitions and arrange them in AsyncAPI schema.","links":{"repoUrl":"https://github.com/swaggest/go-asyncapi"},"filters":{"language":[{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"Java AsyncAPI","description":"This tool stores modules, which simplifies interacting with AsyncAPI in jvm ecosystem.","links":{"repoUrl":"https://github.com/asyncapi/jasyncapi"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Kotlin","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"KnstEventBus","description":"AsyncApi code-first tools for c#. Generates document and view.","links":{"repoUrl":"https://github.com/d0972058277/KnstEventBus"},"filters":{"language":[{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"}],"technology":[{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"},{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"}],"categories":["code-first","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Kotlin AsyncAPI","description":"The Kotlin AsyncAPI project aims to provide convenience tools for generating and serving AsyncAPI documentation. The core of this project is a Kotlin DSL for building the specification in a typesafe way.","links":{"repoUrl":"https://github.com/OpenFolder/kotlin-asyncapi"},"filters":{"language":[{"name":"Kotlin","color":"bg-[#B1ACDF]","borderColor":"border-[#756BD9]"}],"technology":[{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"nestjs-asyncapi","description":"Utilize decorators to generate AsyncAPI document utilizing DTOs (similar to @nestjs/swagger) and a web UI.","links":{"repoUrl":"https://github.com/flamewow/nestjs-asyncapi"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Nest Js","color":"bg-[#E1224E]","borderColor":"border-[#B9012b]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Neuroglia AsyncAPI","description":"A .NET SDK for the Async API specification. Automatically generates and serves AsyncAPI documents based on your code. Includes fluent-builders to create AsyncAPI documents from scratch, and provides a web-based GUI to browse generated documents.","links":{"repoUrl":"https://github.com/neuroglia-io/AsyncApi"},"filters":{"language":[{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"}],"technology":[{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Saunter","description":"Saunter is an AsyncAPI documentation generator for dotnet. Generates (and hosts) an AsyncAPI schema document from your code.","links":{"repoUrl":"https://github.com/tehmantra/saunter"},"filters":{"language":[{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"}],"technology":[{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"SIO-AsyncAPI","description":"This is code-first approach to generate AsyncAPI specification from Socket.IO server.","links":{"websiteUrl":"https://github.com/daler-rahimov/sio-asyncapi","docsUrl":"https://github.com/daler-rahimov/sio-asyncapi","repoUrl":"https://github.com/daler-rahimov/sio-asyncapi"},"filters":{"language":[{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"}],"technology":[{"name":"Socket.IO","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Flask","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"}],"categories":["code-first","api"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Springwolf","description":"Automated documentation for async APIs built with Spring Boot. Like Springfox for AsyncAPI. Auto-generates an AsyncAPI document and a web UI.","links":{"websiteUrl":"https://www.springwolf.dev","repoUrl":"https://github.com/springwolf/springwolf-core"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"},{"name":"Gradle","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-first","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"sttp tapir","description":"Library for describing HTTP endpoints, and then interpreting them as a server, client, or documentation","links":{"websiteUrl":"https://tapir.softwaremill.com/","repoUrl":"https://github.com/softwaremill/tapir"},"filters":{"language":[{"name":"Scala","color":"bg-[#FFA299]","borderColor":"border-[#DF301F]"}],"categories":["code-first"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"Zod Sockets","description":"Socket.IO solution with I/O validation and the ability to generate AsyncAPI specification and a contract for consumers.","links":{"websiteUrl":"https://www.npmjs.com/package/zod-sockets","repoUrl":"https://github.com/RobinTail/zod-sockets"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-first","dsl","framework"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Code Generators":{"description":"The following is a list of tools that generate code from an AsyncAPI document; not the other way around.","toolsList":[{"title":"AsyncAPI Generator","description":"Generator is a tool that you can use to generate whatever you want basing on the AsyncAPI specification file as an input.","links":{"docsUrl":"https://www.asyncapi.com/docs/tools/generator","repoUrl":"https://github.com/asyncapi/generator"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["code-generator","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"AsyncAPI Modelina","description":"Generate payload models into Java, TypeScript, Go, etc, you name it, from AsyncAPI documents. This tool gives you full control over the models through high customization","links":{"websiteUrl":"https://modelina.org","docsUrl":"https://github.com/asyncapi/modelina/tree/master/docs","repoUrl":"https://github.com/asyncapi/modelina"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"},{"name":"Docker","color":"bg-[#B8E0FF]","borderColor":"border-[#2596ED]"}],"categories":["code-generator"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"Golang AsyncAPI Code Generator","description":"Generate Go user and application boilerplate from AsyncAPI specifications. Can be called from `go generate` without requirements.\n","links":{"repoUrl":"https://github.com/lerenn/asyncapi-codegen"},"filters":{"language":[{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"}],"categories":["code-generator"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"MultiAPI Generator","description":"This is a plugin designed to help developers automatizing the creation of code classes from YML files based on AsyncApi and OpenAPI. It is presented in 2 flavours Maven and Gradle","links":{"repoUrl":"https://github.com/sngular/scs-multiapi-plugin"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Groovy","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"}],"categories":["code-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Node-RED AsyncAPI plugin","description":"A plugin for generating and configuring nodes for Kafka, MQTT, AMQP, etc. automatically from an AsyncAPI specification.","links":{"repoUrl":"https://github.com/dalelane/node-red-contrib-plugin-asyncapi"},"filters":{"technology":[{"name":"Node-RED","color":"bg-[#FF7474]","borderColor":"border-[#8F0101]"}],"categories":["code-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"ZenWave SDK","description":"DDD and API-First for Event-Driven Microservices","links":{"websiteUrl":"https://zenwave360.github.io/","docsUrl":"https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/","repoUrl":"https://github.com/zenwave360/zenwave-sdk"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-generator","dsl","mocking-and-testing","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Converters":{"description":"The following is a list of tools that do not yet belong to any specific category but are also useful for the community.","toolsList":[{"title":"AsyncAPI-format","description":"Format an AsyncAPI document by ordering, casing, formatting, and filtering fields.","links":{"repoUrl":"https://github.com/thim81/asyncapi-format"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["converter","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"AsyncAPI.Net","description":"The AsyncAPI.NET SDK contains a useful object model for AsyncAPI documents in .NET along with common serializers to extract raw OpenAPI JSON and YAML documents from the model.","links":{"websiteUrl":"https://github.com/LEGO/AsyncAPI.NET/","repoUrl":"https://github.com/LEGO/AsyncAPI.NET"},"filters":{"language":[{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"}],"technology":[{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"}],"categories":["converters","code-first","validator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Converter","description":"Converts old versions of AsyncAPI files into the latest version.","links":{"repoUrl":"https://github.com/asyncapi/converter-js"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["converter"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"Converter-Go","description":"The AsyncAPI Converter converts AsyncAPI documents from versions 1.0.0, 1.1.0 and 1.2.0 to version 2.0.0. It supports both json and yaml formats on input and output. By default, the AsyncAPI Converter converts a document into the json format.","links":{"repoUrl":"https://github.com/asyncapi/converter-go"},"filters":{"language":[{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"}],"categories":["converter"],"hasCommercial":false,"isAsyncAPIOwner":true,"technology":[]}}]},"Directories":{"description":"The following is a list of directories that index public AsyncAPI documents.","toolsList":[{"title":"API Tracker - AsyncAPI specs","description":"Explore APIs and companies with public AsyncAPI specifications.","links":{"websiteUrl":"https://apitracker.io/specifications/asyncapi","repoUrl":""},"filters":{"categories":["api","directory"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"AsyncAPI-Directory by APIs.guru","description":"Directory of asynchronous API specifications in AsyncAPI format.","links":{"websiteUrl":"https://apis.guru/asyncapi-directory/","repoUrl":"https://github.com/APIs-guru/asyncapi-directory"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["api","directory"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Documentation Generators":{"description":"The following is a list of tools that generate human-readable documentation from an AsyncAPI document.","toolsList":[{"title":"AsyncAPI Generator","description":"Generator is a tool that you can use to generate whatever you want basing on the AsyncAPI specification file as an input.","links":{"docsUrl":"https://www.asyncapi.com/docs/tools/generator","repoUrl":"https://github.com/asyncapi/generator"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Markdown","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-generator","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"asyncapi-asciidoc-template","description":"Asciidoc template for the asyncapi generator","links":{"repoUrl":"https://gitlab.com/djencks/asyncapi-asciidoc-template"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"}],"categories":["documentation-generator","generator-template"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Bump.sh","description":"OpenAPI 2 & 3 / AsyncAPI 2 documentation generator, with automatic changelog and visual diff.","links":{"websiteUrl":"https://bump.sh/","docsUrl":"https://docs.bump.sh/help/","repoUrl":""},"filters":{"categories":["documentation-generator"],"hasCommercial":true,"isAsyncAPIOwner":false,"technology":[]}},{"title":"Cupid","description":"A library that focuses on finding and analyzing the relationships between AsyncAPI documents. It outputs a map of the system architecture.","links":{"repoUrl":"https://github.com/asyncapi/cupid"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"KnstEventBus","description":"AsyncApi code-first tools for c#. Generates document and view.","links":{"repoUrl":"https://github.com/d0972058277/KnstEventBus"},"filters":{"language":[{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"}],"technology":[{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"},{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"}],"categories":["code-first","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Springwolf","description":"Automated documentation for async APIs built with Spring Boot. Like Springfox for AsyncAPI. Auto-generates an AsyncAPI document and a web UI.","links":{"websiteUrl":"https://www.springwolf.dev","repoUrl":"https://github.com/springwolf/springwolf-core"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"},{"name":"Gradle","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-first","documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Widdershins","description":"OpenAPI 3.0 / Swagger 2.0 / AsyncAPI 1.0 definition to Slate / Shins compatible markdown.","links":{"websiteUrl":"https://mermade.github.io/reslate/","repoUrl":"https://github.com/Mermade/widdershins"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Shell","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["documentation-generator"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Editors":{"description":"The following is a list of editors or related tools that allow editing of AsyncAPI document.","toolsList":[{"title":"AsyncAPI Studio","description":"Visually design your AsyncAPI files and event-driven architecture.","links":{"websiteUrl":"https://studio.asyncapi.com","repoUrl":"https://github.com/asyncapi/studio"},"filters":{"technology":[{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"},{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["editor"],"hasCommercial":false,"isAsyncAPIOwner":true}}]},"UI components":{"description":"The following is a list of UI components to view AsyncAPI documents.","toolsList":[{"title":"Api-Diff-Viewer","description":"React component to view the difference between two Json based API documents. Supported specifications: JsonSchema, OpenAPI 3.x, AsyncAPI 2.x.","links":{"repoUrl":"https://github.com/udamir/api-diff-viewer","websiteUrl":"https://api-diff-viewer.vercel.app/"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"},{"name":"Babel","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Storybook","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["ui-component"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"AsyncAPI React component","description":"React component for rendering documentation from your specification in real-time in the browser. It also provides a WebComponent and bundle for Angular and Vue","links":{"repoUrl":"https://github.com/asyncapi/asyncapi-react"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"},{"name":"WebComponents","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["ui-component"],"hasCommercial":false,"isAsyncAPIOwner":true}}]},"DSL":{"description":"Writing YAML by hand is no fun, and maybe you don't want a GUI, so use a Domain Specific Language to write AsyncAPI in your language of choice.","toolsList":[{"title":"BOATS","description":"Compile your single AsyncAPI file from multiple YAML files with BOATS and with the help of the template engine Nunjucks, plus a many extra helpers to automate much of the donkey work.","links":{"repoUrl":"https://github.com/j-d-carmichael/boats"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["dsl"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"ZenWave SDK","description":"DDD and API-First for Event-Driven Microservices","links":{"websiteUrl":"https://zenwave360.github.io/","docsUrl":"https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/","repoUrl":"https://github.com/zenwave360/zenwave-sdk"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-generator","dsl","mocking-and-testing","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Zod Sockets","description":"Socket.IO solution with I/O validation and the ability to generate AsyncAPI specification and a contract for consumers.","links":{"websiteUrl":"https://www.npmjs.com/package/zod-sockets","repoUrl":"https://github.com/RobinTail/zod-sockets"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-first","dsl","framework"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Frameworks":{"description":"The following is a list of API/application frameworks that make use of AsyncAPI.","toolsList":[{"title":"Asynction","description":"SocketIO server framework driven by the AsyncAPI specification. Asynction guarantees that your API will work in accordance with its AsyncAPI documentation. Built on top of Flask-SocketIO.","links":{"websiteUrl":"https://pypi.org/project/asynction/","repoUrl":"https://github.com/dedoussis/asynction"},"filters":{"language":[{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"}],"technology":[{"name":"Flask","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"}],"categories":["framework"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"FastStream","description":"A powerful and easy-to-use Python framework for building asynchronous services interacting with event streams such as Apache Kafka, RabbitMQ and NATS.","links":{"websiteUrl":"https://faststream.airt.ai","repoUrl":"https://github.com/airtai/FastStream"},"filters":{"language":[{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"}],"categories":["code-first","framework"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"Glee","description":"Glee — The AsyncAPI framework that will make you smile again :)","links":{"repoUrl":"https://github.com/asyncapi/glee"},"filters":{"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["framework"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"Zod Sockets","description":"Socket.IO solution with I/O validation and the ability to generate AsyncAPI specification and a contract for consumers.","links":{"websiteUrl":"https://www.npmjs.com/package/zod-sockets","repoUrl":"https://github.com/RobinTail/zod-sockets"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-first","dsl","framework"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"GitHub Actions":{"description":"The following is a list of GitHub Actions that you can use in your workflows","toolsList":[{"title":"API documentation generation on Bump.sh","description":"With this GitHub Action you can automatically generate your API reference (with the changelog and diff) on Bump.sh from any AsyncAPI file.","links":{"websiteUrl":"https://github.com/marketplace/actions/api-documentation-on-bump","repoUrl":"https://github.com/bump-sh/github-action"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"categories":["github-action"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"AsyncAPI GitHub Action","description":"This action validates if the AsyncAPI schema file is valid or not.","links":{"websiteUrl":"https://github.com/marketplace/actions/asyncapi-github-action","repoUrl":"https://github.com/WaleedAshraf/asyncapi-github-action"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["github-action","validator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Automated version bump for AsyncAPI documents","description":"With this GitHub Action, you can automatically bump the version based on commit messages, which is similar to what semantic-release is for NPM.","links":{"websiteUrl":"https://github.com/marketplace/actions/automated-version-bump-for-asyncapi","repoUrl":"https://github.com/bump-sh/github-action"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["github-action"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"GitHub Action for CLI","description":"GitHub Action with generator, validator, converter and others - all in one for your AsyncAPI documents with AsyncAPI CLI as backbone","links":{"repoUrl":"https://github.com/asyncapi/github-action-for-cli"},"filters":{"technology":[{"name":"AsyncAPI Generator","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["github-action"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"GitHub Action for Generator","description":null,"links":{"repoUrl":"https://github.com/actions-marketplace-validations/asyncapi_github-action-for-generator"},"filters":{"technology":[{"name":"AsyncAPI Generator","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["github-action"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"GitHub Action for Generator","description":"CLI to work with your AsyncAPI files. You can validate them and in the future use a generator and even bootstrap a new file. Contributions are welcomed!","links":{"repoUrl":"https://github.com/asyncapi/cli"},"filters":{"technology":[{"name":"AsyncAPI Generator","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["github-actions"],"hasCommercial":false,"isAsyncAPIOwner":true}}]},"Mocking and Testing":{"description":"The tools below take specification documents as input, then publish fake messages to broker destinations for simulation purposes. They may also check that publisher messages are compliant with schemas.","toolsList":[{"title":"Microcks","description":"Mocking and testing platform for API and microservices. Turn your AsyncAPI, OpenAPI contract examples, or Postman collections into ready-to-use mocks. Use examples to simulate and validate received messages according to schema elements.","links":{"websiteUrl":"https://microcks.io/","repoUrl":"https://github.com/microcks/microcks"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Kubernetes-native","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Saas","color":"bg-[#6AB8EC]","borderColor":"border-[#2275AD]"}],"categories":["mocking-and-testing"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"MultiAPI Converter","description":"Use AsyncAPI definition, to generate Spring Cloud Contract producer validation or consumer stubs, using maven.","links":{"repoUrl":"https://github.com/sngular/scc-multiapi-converter"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"}],"categories":["mocking-and-testing"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Specmatic","description":"An API contract testing tool that helps ensure the correctness APIs by automatically generating test cases and verifying them against the API spec. It simplifies the process of testing APIs and reduces the likelihood of bugs and compatibility issues.","links":{"websiteUrl":"https://specmatic.io","docsUrl":"https://specmatic.io/documentation/","repoUrl":"https://github.com/znsio/specmatic"},"filters":{"language":[{"name":"Kotlin","color":"bg-[#B1ACDF]","borderColor":"border-[#756BD9]"}],"technology":[{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"}],"categories":["mocking-and-testing"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Virtualan","description":"Mocking and testing platform for API and microservices. Allows you to create and setup mocks for OpenAPI and AsyncAPI contracts. Shows how to setup and create AsyncAPI GitHub Reference Examples and OpenAPI GitHub Reference Examples.","links":{"websiteUrl":"https://www.virtualan.io/index.html","repoUrl":"https://github.com/virtualansoftware"},"filters":{"technology":[{"name":"Kubernetes-native","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"}],"categories":["mocking-and-testing"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"ZenWave SDK","description":"DDD and API-First for Event-Driven Microservices","links":{"websiteUrl":"https://zenwave360.github.io/","docsUrl":"https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/","repoUrl":"https://github.com/zenwave360/zenwave-sdk"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-generator","dsl","mocking-and-testing","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Validators":{"description":"The following is a list of tools that validate AsyncAPI documents.","toolsList":[{"title":"AMF","description":"AMF (AML Modeling Framework) is an open-source library capable of parsing and validating AML metadata documents.","links":{"docsUrl":"https://a.ml/docs/","repoUrl":"https://github.com/aml-org/amf"},"filters":{"language":[{"name":"Scala","color":"bg-[#FFA299]","borderColor":"border-[#DF301F]"}],"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"AsyncAPI GitHub Action","description":"This action validates if the AsyncAPI schema file is valid or not.","links":{"websiteUrl":"https://github.com/marketplace/actions/asyncapi-github-action","repoUrl":"https://github.com/WaleedAshraf/asyncapi-github-action"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["github-action","validator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"AsyncAPI Parser","description":"Use this package to parse and validate AsyncAPI documents —either YAML or JSON— in your Node.js or browser application. Updated bundle for the browser is always attached to the GitHub Release.","links":{"repoUrl":"https://github.com/asyncapi/parser-js"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"AsyncAPI Parser","description":"The AsyncAPI Parser validates AsyncAPI documents according to dedicated schemas.","links":{"repoUrl":"https://github.com/asyncapi/parser-go"},"filters":{"language":[{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"}],"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":true,"technology":[]}},{"title":"AsyncAPI Parser Wrapper","description":"Use this library to parse and validate AsyncAPI documents — either YAML or JSON — in your Java application. It is a Java wrapper over JavaScript Parser implemented using J2V8.","links":{"repoUrl":"https://github.com/AsyncAPITools/parser-java-wrapper"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"AsyncAPI Validation","description":"Message validation package for YAML and JSON AsyncAPI documents.","links":{"repoUrl":"https://github.com/Elhebert/asyncapi-validation"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"asyncapi-validator","description":"It allows you to validate the schema of your messages against your AsyncAPI schema definition. You can use it with Kafka, RabbitMQ or any other messaging/queue.","links":{"repoUrl":"https://github.com/WaleedAshraf/asyncapi-validator"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"AsyncAPI.Net","description":"The AsyncAPI.NET SDK contains a useful object model for AsyncAPI documents in .NET along with common serializers to extract raw OpenAPI JSON and YAML documents from the model.","links":{"websiteUrl":"https://github.com/LEGO/AsyncAPI.NET/","repoUrl":"https://github.com/LEGO/AsyncAPI.NET"},"filters":{"language":[{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"}],"technology":[{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"}],"categories":["converters","code-first","validator"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"Spectral","description":"A flexible JSON/YAML linter for creating automated style guides, with baked in support for OpenAPI v3.1, v3.0, and v2.0 as well as AsyncAPI v2.x.","links":{"repoUrl":"https://github.com/stoplightio/spectral"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["validator"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Compare tools":{"description":"The following is a list of tools that compare AsyncAPI documents.","toolsList":[{"title":"Api-Smart-Diff","description":"It allows you to compare two API documents and classify changes. Supported API specifications: OpenAPI, AsyncAPI, JsonSchema.","links":{"repoUrl":"https://github.com/udamir/api-smart-diff"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"categories":["compare-tool"],"hasCommercial":false,"isAsyncAPIOwner":false,"technology":[]}},{"title":"AsyncAPI Diff","description":"Diff is a library that compares two AsyncAPI Documents and provides information about the differences by pointing out explicitly information like breaking changes.","links":{"repoUrl":"https://github.com/asyncapi/diff"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["compare-tool"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"jasyncapicmp","description":"Tool for comparing two AsyncAPI versions and evaluating compatibility.","links":{"websiteUrl":"https://siom79.github.io/jasyncapicmp/","docsUrl":"https://github.com/siom79/jasyncapicmp","repoUrl":"https://github.com/siom79/jasyncapicmp"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"}],"categories":["compare-tool"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"jasyncapicmp","description":"Tool/library/maven-plugin for comparing two AsyncAPI versions and evaluating compatibility.","links":{"websiteUrl":"https://siom79.github.io/jasyncapicmp/","repoUrl":"https://github.com/siom79/jasyncapicmp"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"}],"categories":["compare-tool"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"CLIs":{"description":"The following is a list of tools that you can work with in terminal or do some CI/CD automation.","toolsList":[{"title":"AsyncAPI CLI","description":"One CLI to rule them all. \nThis is a CLI that aims to integrate all AsyncAPI tools that you need while AsyncAPI document development and maintainance. \nYou can use it to generate docs or code, validate AsyncAPI document and event create new documents.\n","links":{"websiteUrl":"https://www.asyncapi.com/tools/cli","repoUrl":"https://github.com/asyncapi/cli"},"filters":{"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["others","cli"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"AsyncAPI CLI","description":"One CLI to rule them all. \nThis is a CLI that aims to integrate all AsyncAPI tools that you need while AsyncAPI document development and maintainance. \nYou can use it to generate docs or code, validate AsyncAPI document and event create new documents.\n","links":{"websiteUrl":"https://www.asyncapi.com/tools/cli","repoUrl":"https://github.com/hkirat/asyncapi-fork"},"filters":{"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["others","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"AsyncAPI-format","description":"Format an AsyncAPI document by ordering, casing, formatting, and filtering fields.","links":{"repoUrl":"https://github.com/asyncapi/converter-go"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["converter","cli"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"ZenWave SDK","description":"DDD and API-First for Event-Driven Microservices","links":{"websiteUrl":"https://zenwave360.github.io/","docsUrl":"https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/","repoUrl":"https://github.com/zenwave360/zenwave-sdk"},"filters":{"language":[{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"}],"technology":[{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["code-generator","dsl","mocking-and-testing","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}}]},"Bundlers":{"description":"The following is a list of tools that you can work with to bundle AsyncAPI documents.","toolsList":[{"title":"Api-ref-bundler","description":"It allows you bundle/dereference external/internal $refs in Json based API document. Supported specifications: OpenAPI, AsyncAPI, JsonSchema.","links":{"repoUrl":"https://github.com/udamir/api-ref-bundler"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["bundler"],"hasCommercial":false,"isAsyncAPIOwner":false}},{"title":"AsyncAPI Bundler","description":"Combine multiple AsyncAPI specification files into one.","links":{"repoUrl":"https://github.com/asyncapi/bundler"},"filters":{"language":[{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"}],"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["bundler"],"hasCommercial":false,"isAsyncAPIOwner":true}}]},"IDE Extensions":{"description":"The following is a list of extensions for different IDEs like VSCode, IntelliJ IDEA and others","toolsList":[{"title":"asyncapi-preview","description":"VSCode extension that enables you to:\n - Preview documentation generated using you AsyncAPI document. It uses AsyncAPI React component under the hood,\n - Create AsyncAPI documents faster using SmartPaste functionality\n","links":{"repoUrl":"https://github.com/asyncapi/vs-asyncapi-preview"},"filters":{"technology":[{"name":"VSCode","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"SmartPaste","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["ide-extension"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"jAsyncAPI - IDEA plugin","description":"Idea plugin for the java-asyncapi - Helps to edit and validate AsyncAPI schemas.","links":{"websiteUrl":"https://plugins.jetbrains.com/plugin/15673-asyncapi","docsUrl":"https://github.com/asyncapi/jasyncapi-idea-plugin#usage","repoUrl":"https://github.com/asyncapi/jasyncapi-idea-plugin"},"filters":{"language":[{"name":"Kotlin","color":"bg-[#B1ACDF]","borderColor":"border-[#756BD9]"}],"technology":[{"name":"JetBrains","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"IntelliJ IDEA","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["ide-extension"],"hasCommercial":false,"isAsyncAPIOwner":true}}]},"AsyncAPI Generator Templates":{"description":"The following is a list of templates compatible with AsyncAPI Generator. You can use them to generate apps, clients or documentation from your AsyncAPI documents.","toolsList":[{"title":"HTML Template","description":"HTML template for AsyncAPI Generator. Use it to generate a static docs. It is using AsyncAPI React component under the hood.","links":{"repoUrl":"https://github.com/asyncapi/html-template"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"HTML","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["generator-template"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"Java Spring Cloud Stream Template","description":"Java Spring Cloud Stream template for the AsyncAPI Generator","links":{"repoUrl":"https://github.com/asyncapi/java-spring-cloud-stream-template"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"}],"categories":["generator-template"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"Java Spring Template","description":"Java Spring template for the AsyncAPI Generator","links":{"repoUrl":"https://github.com/asyncapi/java-spring-template"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Gradle","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["generator-template"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"Java Template","description":"Java template for the AsyncAPI Generator","links":{"repoUrl":"https://github.com/asyncapi/java-template"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Java","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["generator-template"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"Node.js Multiprotocol Template","description":"This template generates a server using your AsyncAPI document. It supports multiple different protocols, like Kafka or MQTT. It is designed in the way that generated code is a library and with it's API you can start the server, send messages or register a middleware for listening incoming messages. Runtime message validation included.","links":{"repoUrl":"https://github.com/asyncapi/nodejs-template"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["generator-template"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"Node.js Websockets Template","description":"Node.js WebSockets template for the AsyncAPI Generator. It showcases how from a single AsyncAPI document you can generate a server and a client at the same time.","links":{"repoUrl":"https://github.com/asyncapi/nodejs-ws-template"},"filters":{"language":[{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"}],"technology":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"}],"categories":["generator-template"],"hasCommercial":false,"isAsyncAPIOwner":true}}]},"Others":{"description":"The following is a list of tools that comes under Other category.","toolsList":[{"title":"AsyncAPI CLI","description":"One CLI to rule them all. \nThis is a CLI that aims to integrate all AsyncAPI tools that you need while AsyncAPI document development and maintainance. \nYou can use it to generate docs or code, validate AsyncAPI document and event create new documents.\n","links":{"websiteUrl":"https://www.asyncapi.com/tools/cli","repoUrl":"https://github.com/asyncapi/cli"},"filters":{"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["others","cli"],"hasCommercial":false,"isAsyncAPIOwner":true}},{"title":"AsyncAPI CLI","description":"One CLI to rule them all. \nThis is a CLI that aims to integrate all AsyncAPI tools that you need while AsyncAPI document development and maintainance. \nYou can use it to generate docs or code, validate AsyncAPI document and event create new documents.\n","links":{"websiteUrl":"https://www.asyncapi.com/tools/cli","repoUrl":"https://github.com/hkirat/asyncapi-fork"},"filters":{"technology":[{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}],"categories":["others","cli"],"hasCommercial":false,"isAsyncAPIOwner":false}}]}}
\ No newline at end of file
diff --git a/dashboard.json b/dashboard.json
index 1b19808d2551..467af3c1924b 100644
--- a/dashboard.json
+++ b/dashboard.json
@@ -1,53 +1,24 @@
{
"hotDiscussions": [
{
- "id": "I_kwDOFLhIt84-OUI3",
+ "id": "I_kwDODou01c5BZZv-",
"isPR": false,
"isAssigned": false,
- "title": "Create educational & technical video explaining AsyncAPI's main features",
- "author": "quetzalliwrites",
- "resourcePath": "/asyncapi/community/issues/155",
- "repo": "asyncapi/community",
+ "title": "Open Graph link preview image according to the document to open",
+ "author": "smoya",
+ "resourcePath": "/asyncapi/studio/issues/224",
+ "repo": "asyncapi/studio",
"labels": [
{
"name": "enhancement",
"color": "a2eeef"
+ },
+ {
+ "name": "keep-open",
+ "color": "f9dd4b"
}
],
- "score": 34.46095064991105
- },
- {
- "id": "PR_kwDOFLhIt855u7Eb",
- "isPR": true,
- "isAssigned": false,
- "title": "docs: added community marketing strategy doc",
- "author": "iambami",
- "resourcePath": "/asyncapi/community/pull/1358",
- "repo": "asyncapi/community",
- "labels": [],
- "score": 19.527872034949596
- },
- {
- "id": "PR_kwDOFLhIt85oVQqh",
- "isPR": true,
- "isAssigned": false,
- "title": "feat: docs automation for website",
- "author": "AnimeshKumar923",
- "resourcePath": "/asyncapi/community/pull/1082",
- "repo": "asyncapi/community",
- "labels": [],
- "score": 18.37917367995256
- },
- {
- "id": "PR_kwDOBW5R_c52BRgf",
- "isPR": true,
- "isAssigned": false,
- "title": "feat: added test for build-rss.js",
- "author": "vishvamsinh28",
- "resourcePath": "/asyncapi/website/pull/3101",
- "repo": "asyncapi/website",
- "labels": [],
- "score": 17.517649913704783
+ "score": 31.302030173669205
},
{
"id": "I_kwDOGQYLdM5AX1lK",
@@ -67,180 +38,241 @@
"color": "0E8A16"
}
],
- "score": 15.794602381209232
+ "score": 27.8559351086781
},
{
- "id": "PR_kwDOFLhIt853IEwA",
+ "id": "PR_kwDOBW5R_c5-T7mG",
"isPR": true,
"isAssigned": false,
- "title": "docs: added asyncapi student ambassador md file",
- "author": "iambami",
- "resourcePath": "/asyncapi/community/pull/1333",
- "repo": "asyncapi/community",
+ "title": "feat: add tests for build post list script",
+ "author": "vishvamsinh28",
+ "resourcePath": "/asyncapi/website/pull/3284",
+ "repo": "asyncapi/website",
"labels": [],
- "score": 15.220253203710714
+ "score": 25.845712987433288
},
{
- "id": "I_kwDOFLhIt85bebeO",
- "isPR": false,
+ "id": "PR_kwDOFLhIt85bqKL8",
+ "isPR": true,
"isAssigned": false,
- "title": "Meeting Banners Storage",
- "author": "AceTheCreator",
- "resourcePath": "/asyncapi/community/issues/568",
+ "title": "docs: add Bounty Program Rules",
+ "author": "aeworxet",
+ "resourcePath": "/asyncapi/community/pull/897",
"repo": "asyncapi/community",
"labels": [],
- "score": 14.933078614961456
+ "score": 22.112443333692923
},
{
- "id": "PR_kwDOCHlHJM54CmhW",
+ "id": "I_kwDOBW5R_c5BIl5P",
+ "isPR": false,
+ "isAssigned": false,
+ "title": "Add new page for collecting user testing participants",
+ "author": "mcturco",
+ "resourcePath": "/asyncapi/website/issues/529",
+ "repo": "asyncapi/website",
+ "labels": [
+ {
+ "name": "enhancement",
+ "color": "84b6eb"
+ },
+ {
+ "name": "Epic",
+ "color": "3E4B9E"
+ },
+ {
+ "name": "keep-open",
+ "color": "ffee84"
+ },
+ {
+ "name": "area/design",
+ "color": "0d67d3"
+ },
+ {
+ "name": "area/javascript",
+ "color": "ededed"
+ }
+ ],
+ "score": 21.825268744943667
+ },
+ {
+ "id": "PR_kwDOFLhIt855u7Eb",
"isPR": true,
"isAssigned": false,
- "title": "fix: add the migration guide and nunjucks depreciation notes",
- "author": "Gmin2",
- "resourcePath": "/asyncapi/generator/pull/1253",
- "repo": "asyncapi/generator",
+ "title": "docs: added marketing strategy doc",
+ "author": "iambami",
+ "resourcePath": "/asyncapi/community/pull/1358",
+ "repo": "asyncapi/community",
"labels": [],
- "score": 13.78438025996442
+ "score": 20.102221212448114
},
{
- "id": "I_kwDODou01c5o2x-Z",
- "isPR": false,
+ "id": "PR_kwDOFLhIt85oVQqh",
+ "isPR": true,
"isAssigned": false,
- "title": "Start using a React framework",
- "author": "fmvilas",
- "resourcePath": "/asyncapi/studio/issues/661",
- "repo": "asyncapi/studio",
+ "title": "feat: docs automation for website",
+ "author": "AnimeshKumar923",
+ "resourcePath": "/asyncapi/community/pull/1082",
+ "repo": "asyncapi/community",
"labels": [],
- "score": 13.210031082465903
+ "score": 18.666348268701817
},
{
- "id": "I_kwDOFLhIt85xI2wH",
+ "id": "I_kwDOBW5R_c5RVOOY",
"isPR": false,
"isAssigned": false,
- "title": "Measure AsyncAPI Adoption",
- "author": "fmvilas",
- "resourcePath": "/asyncapi/community/issues/879",
- "repo": "asyncapi/community",
+ "title": "Community cards implementation.",
+ "author": "Mayaleeeee",
+ "resourcePath": "/asyncapi/website/issues/930",
+ "repo": "asyncapi/website",
"labels": [
{
- "name": "stale",
+ "name": "area/design",
+ "color": "0d67d3"
+ },
+ {
+ "name": "area/javascript",
"color": "ededed"
}
],
- "score": 12.922856493716644
+ "score": 17.517649913704783
},
{
- "id": "I_kwDOBW5R_c5Pi3rO",
- "isPR": false,
+ "id": "PR_kwDOBW5R_c535wDj",
+ "isPR": true,
"isAssigned": false,
- "title": "Epic roadmap to the new AsyncAPI community section",
- "author": "AceTheCreator",
- "resourcePath": "/asyncapi/website/issues/903",
+ "title": "feat: add test for combine tools script",
+ "author": "vishvamsinh28",
+ "resourcePath": "/asyncapi/website/pull/3136",
"repo": "asyncapi/website",
"labels": [
{
- "name": "keep-open",
- "color": "ffee84"
- },
- {
- "name": "🎨 design",
- "color": "0D67D3"
+ "name": "gsoc",
+ "color": "F4D03F"
}
],
- "score": 11.073163907693488
+ "score": 16.65612614745701
},
{
- "id": "I_kwDODwv8N86BkfYV",
+ "id": "I_kwDOFLhIt84-OUI3",
"isPR": false,
"isAssigned": false,
- "title": "Add Gallery Section to AACoT'24 Conference Website",
- "author": "Mayaleeeee",
- "resourcePath": "/asyncapi/conference-website/issues/264",
- "repo": "asyncapi/conference-website",
+ "title": "Create educational & technical video explaining AsyncAPI's main features",
+ "author": "quetzalliwrites",
+ "resourcePath": "/asyncapi/community/issues/155",
+ "repo": "asyncapi/community",
"labels": [
{
- "name": "Hacktoberfest",
- "color": "FF8AE2"
+ "name": "enhancement",
+ "color": "a2eeef"
}
],
- "score": 10.912634372471834
+ "score": 16.60974586154023
+ },
+ {
+ "id": "PR_kwDOFLhIt853IEwA",
+ "isPR": true,
+ "isAssigned": false,
+ "title": "docs: added asyncapi student ambassador md file",
+ "author": "iambami",
+ "resourcePath": "/asyncapi/community/pull/1333",
+ "repo": "asyncapi/community",
+ "labels": [],
+ "score": 16.08177696995849
+ },
+ {
+ "id": "I_kwDOFLhIt85bebeO",
+ "isPR": false,
+ "isAssigned": false,
+ "title": "Meeting Banners Storage",
+ "author": "AceTheCreator",
+ "resourcePath": "/asyncapi/community/issues/568",
+ "repo": "asyncapi/community",
+ "labels": [],
+ "score": 15.507427792459973
}
],
"goodFirstIssues": [
{
- "id": "I_kwDODwv8N86bdV6Z",
- "title": "Links in the Resources Hub Should Open in a New Window",
+ "id": "I_kwDODwv8N86f37o-",
+ "title": "Return to top arrow feature/button",
"isAssigned": false,
- "resourcePath": "/asyncapi/conference-website/issues/434",
+ "resourcePath": "/asyncapi/conference-website/issues/475",
"repo": "asyncapi/conference-website",
- "author": "AceTheCreator",
+ "author": "thulieblack",
"area": "Unknown",
"labels": [
{
- "name": "Hacktoberfest",
- "color": "FF8AE2"
+ "name": "enhancement",
+ "color": "a2eeef"
}
]
},
{
- "id": "I_kwDOFLhIt86bdQd-",
- "title": "Add Proposed Project Ideas to Mentorship Directory",
+ "id": "I_kwDOFLhIt86dkhlL",
+ "title": "Design for mentors for promotion",
"isAssigned": false,
- "resourcePath": "/asyncapi/community/issues/1564",
+ "resourcePath": "/asyncapi/community/issues/1582",
"repo": "asyncapi/community",
- "author": "AceTheCreator",
- "area": "Unknown",
+ "author": "iambami",
+ "area": "design",
"labels": [
{
- "name": "Hacktoberfest",
- "color": "FF8AE2"
+ "name": ":loudspeaker: marketing",
+ "color": "a829e2"
}
]
},
{
- "id": "I_kwDOBW5R_c6aKzLD",
- "title": "[FEATURE] Add coderabbit configuration to the repo",
+ "id": "I_kwDOFLhIt86dker5",
+ "title": "Designs for the mentees selected for the mentorship program for promotion",
"isAssigned": true,
- "resourcePath": "/asyncapi/website/issues/3293",
- "repo": "asyncapi/website",
- "author": "akshatnema",
- "area": "Unknown",
+ "resourcePath": "/asyncapi/community/issues/1581",
+ "repo": "asyncapi/community",
+ "author": "iambami",
+ "area": "design",
"labels": [
{
- "name": "enhancement",
- "color": "84b6eb"
- },
- {
- "name": "Hacktoberfest",
- "color": "FF8AE2"
+ "name": ":loudspeaker: marketing",
+ "color": "a829e2"
}
]
},
{
- "id": "I_kwDOCHlHJM6ZrKEr",
- "title": "[📑 Docs]: Fix the relative paths of `index.md` & `migration.md` files.",
+ "id": "I_kwDOBW5R_c6ddpHW",
+ "title": "[BUG] algolia search icon not visible on website navbar",
"isAssigned": false,
- "resourcePath": "/asyncapi/generator/issues/1294",
- "repo": "asyncapi/generator",
- "author": "Gmin2",
+ "resourcePath": "/asyncapi/website/issues/3371",
+ "repo": "asyncapi/website",
+ "author": "anshgoyalevil",
"area": "Unknown",
"labels": [
{
- "name": "Hacktoberfest",
- "color": "FF8AE2"
- },
+ "name": "bug",
+ "color": "ee0701"
+ }
+ ]
+ },
+ {
+ "id": "I_kwDOBW5R_c6crqQz",
+ "title": "Improve image type detection in build-rss.js",
+ "isAssigned": true,
+ "resourcePath": "/asyncapi/website/issues/3357",
+ "repo": "asyncapi/website",
+ "author": "coderabbitai",
+ "area": "Unknown",
+ "labels": [
{
- "name": "📑 docs",
- "color": "E50E99"
+ "name": "enhancement",
+ "color": "84b6eb"
}
]
},
{
- "id": "I_kwDOCVQpZM6YZd4E",
- "title": "A fragment with only one child is redundant.",
+ "id": "I_kwDOFLhIt86bdQd-",
+ "title": "Add Proposed Project Ideas to Mentorship Directory",
"isAssigned": false,
- "resourcePath": "/asyncapi/asyncapi-react/issues/1054",
- "repo": "asyncapi/asyncapi-react",
+ "resourcePath": "/asyncapi/community/issues/1564",
+ "repo": "asyncapi/community",
"author": "AceTheCreator",
"area": "Unknown",
"labels": [
@@ -251,10 +283,10 @@
]
},
{
- "id": "I_kwDOCVQpZM6YZc4E",
- "title": "Remove this redundant \"undefined\"",
+ "id": "I_kwDOCVQpZM6YZd4E",
+ "title": "A fragment with only one child is redundant.",
"isAssigned": false,
- "resourcePath": "/asyncapi/asyncapi-react/issues/1053",
+ "resourcePath": "/asyncapi/asyncapi-react/issues/1054",
"repo": "asyncapi/asyncapi-react",
"author": "AceTheCreator",
"area": "Unknown",
@@ -299,51 +331,6 @@
}
]
},
- {
- "id": "I_kwDODwv8N86Vde8t",
- "title": "Sponsor announcement design for social media",
- "isAssigned": false,
- "resourcePath": "/asyncapi/conference-website/issues/380",
- "repo": "asyncapi/conference-website",
- "author": "thulieblack",
- "area": "Unknown",
- "labels": [
- {
- "name": "design",
- "color": "5D0F46"
- }
- ]
- },
- {
- "id": "I_kwDODwv8N86VdePb",
- "title": "The conference countdown banner",
- "isAssigned": false,
- "resourcePath": "/asyncapi/conference-website/issues/378",
- "repo": "asyncapi/conference-website",
- "author": "thulieblack",
- "area": "Unknown",
- "labels": [
- {
- "name": "design",
- "color": "5D0F46"
- }
- ]
- },
- {
- "id": "I_kwDOBW5R_c6VIyCf",
- "title": "[Docs Bug 🐞 report]: Broken link to Generator Github Actions",
- "isAssigned": false,
- "resourcePath": "/asyncapi/website/issues/3190",
- "repo": "asyncapi/website",
- "author": "chinma-yyy",
- "area": "Unknown",
- "labels": [
- {
- "name": "🐞 docs bug",
- "color": "FFD23F"
- }
- ]
- },
{
"id": "I_kwDOGQYLdM6VGsJA",
"title": "Design a Graphic for the Member Spotlight Post",
@@ -439,6 +426,21 @@
}
]
},
+ {
+ "id": "I_kwDODwv8N86Lel9M",
+ "title": "[FEATURE] Resolve the existing Next.js lint issues",
+ "isAssigned": false,
+ "resourcePath": "/asyncapi/conference-website/issues/328",
+ "repo": "asyncapi/conference-website",
+ "author": "ashmit-coder",
+ "area": "javascript",
+ "labels": [
+ {
+ "name": "enhancement",
+ "color": "a2eeef"
+ }
+ ]
+ },
{
"id": "I_kwDOE8Qh386HJeIz",
"title": "[BUG] Implement avro schema data type ",
@@ -462,7 +464,12 @@
"repo": "asyncapi/cli",
"author": "Amzani",
"area": "typescript",
- "labels": []
+ "labels": [
+ {
+ "name": "stale",
+ "color": "ededed"
+ }
+ ]
},
{
"id": "I_kwDOFDnrNc6Gp8Qd",
@@ -474,25 +481,6 @@
"area": "typescript",
"labels": []
},
- {
- "id": "I_kwDOFDnrNc59gY4V",
- "title": "Validate command output is polluted by noisy messages",
- "isAssigned": false,
- "resourcePath": "/asyncapi/cli/issues/1095",
- "repo": "asyncapi/cli",
- "author": "cykl",
- "area": "Unknown",
- "labels": [
- {
- "name": "Hacktoberfest",
- "color": "FF8AE2"
- },
- {
- "name": "bug",
- "color": "d73a4a"
- }
- ]
- },
{
"id": "I_kwDOCHlHJM58YMi8",
"title": "Improve arborist (npm installation) to have no hacks",
@@ -511,7 +499,7 @@
{
"id": "I_kwDOE8Qh3857Kllp",
"title": "Add loading animation for when playground generate models ",
- "isAssigned": true,
+ "isAssigned": false,
"resourcePath": "/asyncapi/modelina/issues/1725",
"repo": "asyncapi/modelina",
"author": "jonaslagoni",
@@ -561,21 +549,6 @@
}
]
},
- {
- "id": "I_kwDODou01c531nlO",
- "title": "Misalignment of Code Editor Highlight Box",
- "isAssigned": true,
- "resourcePath": "/asyncapi/studio/issues/861",
- "repo": "asyncapi/studio",
- "author": "princerajpoot20",
- "area": "typescript",
- "labels": [
- {
- "name": "stale",
- "color": "ededed"
- }
- ]
- },
{
"id": "I_kwDOFDnrNc50wZMh",
"title": "Add support for proxy",
@@ -641,6 +614,10 @@
{
"name": "bug",
"color": "d73a4a"
+ },
+ {
+ "name": "stale",
+ "color": "ededed"
}
]
},
@@ -709,10 +686,6 @@
{
"name": "bug",
"color": "d73a4a"
- },
- {
- "name": "stale",
- "color": "ededed"
}
]
},
@@ -763,6 +736,10 @@
"author": "CynthiaPeter",
"area": "docs",
"labels": [
+ {
+ "name": "stale",
+ "color": "ededed"
+ },
{
"name": "📑 docs",
"color": "E50E99"
diff --git a/jest.config.js b/jest.config.js
index 9d370a6bb769..39211f19dc49 100644
--- a/jest.config.js
+++ b/jest.config.js
@@ -4,6 +4,7 @@ module.exports = {
coverageReporters: ['text', 'lcov', 'json-summary'],
coverageDirectory: 'coverage',
collectCoverageFrom: ['scripts/**/*.js'],
+ coveragePathIgnorePatterns: ['scripts/compose.js'],
// To disallow netlify edge function tests from running
testMatch: ['**/tests/**/*.test.*', '!**/netlify/**/*.test.*'],
};
\ No newline at end of file
diff --git a/markdown/blog/2024-october-summary.md b/markdown/blog/2024-october-summary.md
new file mode 100644
index 000000000000..88d9e7b9e36a
--- /dev/null
+++ b/markdown/blog/2024-october-summary.md
@@ -0,0 +1,155 @@
+---
+title: "October Community Update And AsyncAPI Online Conference 2024"
+date: 2024-11-07T06:00:00+01:00
+type: Communication
+tags:
+ - Project Status
+cover: /img/posts/2024-blog-banner/blog-banner-october.webp
+authors:
+ - name: Thulisile Sibanda
+ photo: /img/avatars/thulieblack.webp
+ link: https://www.linkedin.com/in/v-thulisile-sibanda/
+ byline: AsyncAPI Community Manager
+excerpt: 'October Community Update And Online Conference Summary'
+featured: true
+---
+
+October marked the third AsyncAPI Conference, this time an online edition. As someone fortunate enough to be extensively involved in organizing the conferences, I saw the challenges that came with in-person events.
+It gave me the idea to propose bringing back the online edition as part of the AsyncAPI Conference brand. We're glad and excited that we received positive results, with over **360 views** from attendees who watched and engaged with us.
+
+I want to express my gratitude to our financial sponsors, [Gravitee.io](https://www.gravitee.io/) and [Postman](https://www.postman.com/), as well as to the speakers for their engaging talks and the conference volunteers (*be sure to check out the [Hall of Fame](#asyncapi-conference-hall-of-fame) section*). [I encourage you to watch the recorded sessions if you missed the event](https://www.youtube.com/watch?v=XGn8v0yBfOI&t=1895s). A playlist of the individual talks and slides will also be available on the [conference website](https://conference.asyncapi.com/).
+
+
+## AsyncAPI Community Building and Maintenance Goals Proposal 2025
+As we approach the end of 2024, we have a proposal outlining the community building and maintenance goals we should prioritize in 2025. Please note that the AsyncAPI community manager will manage and oversee these goals. The goals are poised to address some of the challenges our community is facing, such as the limited number of maintainers and the lack of onboarding materials, and pave the way for a more vibrant and thriving community.
+
+I encourage everyone to participate in the open discussion and share your thoughts and solutions. [Please take a moment to review the open PR related to the AsyncAPI Community Building Goals for 2025](https://github.com/asyncapi/community/pull/1575).
+
+## AsyncAPI Conferences
+
+### AsyncAPI Conf in Paris 2024
+We are excited to announce that the final AsyncAPI Conference will be held on December 5th in Paris, thanks to the amazing team at APIdays. [The draft agenda is now available on our conference website](https://conference.asyncapi.com/venue/Paris), and the lineup of speakers looks fantastic.
+
+Additionally, we have a limited number of free community tickets available. To register, please visit the [AsyncAPI Conference website](https://conference.asyncapi.com/).
+
+**Note**: *When getting your tickets, please choose quantity one (1) of the Regular ticket and click the blue continue button to get your free ticket.*
+
+### AsyncAPI Conf 2025 Venues
+The discussion for potential venues for the AsyncAPI Conference 2025 is underway, and we invite everyone to participate. Please share your thoughts and suggestions for locations for the upcoming year in the [AsyncAPI Conference 2025 open discussion](https://github.com/asyncapi/community/issues/1571). Your input is valuable to us!
+
+### AsyncAPI Conference Rebranding
+In 2023, we successfully launched the AsyncAPI Conf on Tour (AACoT). We followed our vision to host events in various locations, allowing us to connect with the community in multiple cities. As we expand our reach and grow as a brand, we believe it is necessary to drop "on Tour" and simply refer to our events as the AsyncAPI Conf/Conference moving forward.
+Although we are simplifying the name, we remain committed to hosting conferences worldwide and enhancing our conference brand's visibility. [We welcome your thoughts on this rebranding in the AsyncAPI Conf rebranding discussion](https://github.com/orgs/asyncapi/discussions/1578).
+
+### AsyncAPI at FOSDEM 2025
+
+Are you attending FOSDEM and interested in speaking? AsyncAPI will participate in the FOSDEM conference as part of the `APIs: GraphQL, OpenAPI, AsyncAPI, and Friends` track.
+[The Call for Participation is now open](https://pretalx.fosdem.org/fosdem-2025/cfp), and we encourage everyone in the community to apply. Deadline for talk submissions is December 15, 2024. This is another great opportunity to meet fellow community members!
+
+## Should AsyncAPI Initiative Endorse The United Nations Global Digital Compact?
+The United Nations General Assembly has approved the Global Digital Compact, a commitment to ensure digital technologies support sustainable development and human rights.
+AsyncAPI is one of the key standards for event-driven architectures, and our Executive Director, [Lukasz Gornicki](https://www.linkedin.com/in/lukasz-gornicki-a621914), [has called for a vote](https://github.com/asyncapi/community/issues/1577) to determine whether we, as the AsyncAPI Initiative, should endorse the Compact which aligns with our values of open-source software and collaboration. [We encourage all community members to participate in the vote and share their thoughts on this important decision](https://github.com/asyncapi/community/issues/1577).
+
+## Spec x Tooling
+We're thrilled to announce that Glee has been migrated to a monorepo structure and is moving its core functionality to a new package called Gleequore, inspired by the Italian word "cuore," which means "heart."
+This change will allow developers to leverage Glee's features without using the full framework, facilitating integration with platforms like Remix and Next.js.
+We're also working on creating a "Glee for the browser" by extracting protocol adapters to support HTTP and WebSocket clients, overcoming current limitations. Kudos to [Fran Mendez](https://www.linkedin.com/in/fmvilas) and all the Glee maintainers for their amazing work!
+
+[The packages are now available on the Glee repo](https://github.com/asyncapi/glee/tree/master/packages); be sure to try it out.
+
+## AsyncAPI Mascot Brand Refresh
+
+As part of the AsyncAPI Bounty Program, we have a task to rebrand the Eve and Chan mascots. The designs look amazing so far!
+
+
+
+[Please join the discussion and share your thoughts on the progress made on the brand refresh mascot issue](https://github.com/asyncapi/brand/issues/12).
+
+## AsyncAPI Conference Hall of Fame
+I want to extend a heartfelt thank you to the incredible volunteers who generously dedicated their skills and time to ensure the success of the Online Conference. From developers and designers to those working both on-stage and off-stage, their efforts made the planning and execution of the event seamless.
+
+
+
+## Coming in November
+- **AsyncAPI Community Updates Newsletter** - The November Edition issue will arrive in your inbox on the 8th. [Ensure you subscribe to the AsyncAPI Newsletter](https://www.asyncapi.com/newsletter); you don't want to miss out.
diff --git a/markdown/blog/2024-september-summary-and-london.md b/markdown/blog/2024-september-summary-and-london.md
index cbac4f5563ed..0e965cefe356 100644
--- a/markdown/blog/2024-september-summary-and-london.md
+++ b/markdown/blog/2024-september-summary-and-london.md
@@ -11,7 +11,6 @@ authors:
link: https://www.linkedin.com/in/v-thulisile-sibanda/
byline: AsyncAPI Community Manager
excerpt: 'September Community Update and London Conference Highlights'
-featured: true
---
In September, we had our second in-person AsyncAPI conference after Helsinki; read all about it in the [AsyncAPI Helsinki Conference update](https://www.asyncapi.com/blog/helsinki-and-community).
diff --git a/markdown/blog/asyncapi-bounty-program-2024.md b/markdown/blog/asyncapi-bounty-program-2024.md
index bc409d285814..bcfb5183d5d8 100644
--- a/markdown/blog/asyncapi-bounty-program-2024.md
+++ b/markdown/blog/asyncapi-bounty-program-2024.md
@@ -11,7 +11,6 @@ authors:
link: https://github.com/aeworxet
byline: Bounty Program Coordinator
excerpt: 'Annual update on the quarterly published set of tasks that are currently in demand among AsyncAPI Maintainers, targeted at engineers of Middle and Senior professional levels.'
-featured: true
---
## AsyncAPI Bounty Program
diff --git a/markdown/blog/helsinki-and-community.md b/markdown/blog/helsinki-and-community.md
index ffb47a8f82a7..5f1dae232259 100644
--- a/markdown/blog/helsinki-and-community.md
+++ b/markdown/blog/helsinki-and-community.md
@@ -11,7 +11,6 @@ authors:
link: https://twitter.com/derberq
byline: AsyncAPI Executive Director
excerpt: 'Conferences are great. They bring communities together and give people a platform to share their experiences. But is that enough?'
-featured: true
---
## How It All Started
diff --git a/markdown/docs/concepts/application.md b/markdown/docs/concepts/application.md
index 1d9c4634a944..63bc5d75757e 100644
--- a/markdown/docs/concepts/application.md
+++ b/markdown/docs/concepts/application.md
@@ -5,12 +5,12 @@ weight: 23
## What is an application?
-An application is any computer program or a group of them.
+An _application_ is a computer program or a group of them.
-An application could also be a micro-service, IoT device (sensor), mainframe process, etc. Users may even write applications in different programming languages if they support one of the selected protocols.
+An application can be a micro-service, IoT (Internet of things) device (for example, a sensor), mainframe process, and more. Users can create applications using various programming languages that support the chosen protocols.
## Why do we need applications?
-In Event-Driven Architecture (EDA), an application must be a `producer`, a `consumer`, or both. Applications must also use the protocols the server supports if they wish to connect and exchange messages.
+In Event-Driven Architecture (EDA), an application can either be a producer, a consumer, or both. Additionally, if an application wants to connect and exchange messages with the server, it must adhere to the protocols supported by the server.
### Applications: producers and consumers
```mermaid
@@ -20,4 +20,5 @@ flowchart TD
C --> D[message]
D --> F[CONSUMER application]
```
-The above diagram describes a message communication traveling through a channel between a **PRODUCER application** and a **CONSUMER application**.
+
+The diagram above illustrates a message transmission between a Producer application and a Consumer application through a channel.
\ No newline at end of file
diff --git a/markdown/docs/concepts/asyncapi-document/index.md b/markdown/docs/concepts/asyncapi-document/index.md
index 032e8a0a9e2b..9419ff90ff83 100644
--- a/markdown/docs/concepts/asyncapi-document/index.md
+++ b/markdown/docs/concepts/asyncapi-document/index.md
@@ -3,11 +3,11 @@ title: 'Introduction'
weight: 50
---
-The AsyncAPI Specification defines a set of fields that can be used in an AsyncAPI document to describe an application's API. The document may reference other files for additional details or shared fields, but it is typically a single, primary document that encapsulates the API description.
+The AsyncAPI Specification defines a set of fields that can be used in an AsyncAPI document to describe an application’s API. While the document may reference other files for additional details or shared fields, it usually serves as a single, primary document that encapsulates the API description.
-Furthermore, the AsyncAPI document acts as a communication contract between `receivers` and `senders` within an event-driven system. It specifies the payload content required when a service sends a message and offers clear guidance to the receiver regarding the message's properties.
+Furthermore, the AsyncAPI document acts as a communication contract between receivers and senders within an event-driven system. It specifies the payload content necessary for a service to send a message and provides clear guidance to the receiver about the message's properties.
-```YAML
+```yaml
asyncapi: 3.0.0
info:
title: Cool Example
@@ -37,7 +37,5 @@ operations:
```
-You might have additional fields depending on the implemented protocol (i.e., MQTT, AMQP, Kafka, etc.).
-
-For example, your AsyncAPI document could have additional fields for configuring Kafka bindings.
+Depending on the implemented protocol (such as MQTT, AMQP, Kafka, etc.), you may have additional fields in your AsyncAPI document. For example, for configuring Kafka bindings.
diff --git a/markdown/docs/concepts/channel.md b/markdown/docs/concepts/channel.md
index 96fefe067f71..d44759b8a2cf 100644
--- a/markdown/docs/concepts/channel.md
+++ b/markdown/docs/concepts/channel.md
@@ -4,12 +4,10 @@ weight: 20
---
# What is a channel?
-A `channel` is a mechanism created by the server for the organization and transmission of messages. Users can define channels as a _topic, queue, routing key, path,_ or _subject_ depending on the protocol used.
+A _channel_ is a mechanism created by the server that facilitates the organization and transmission of messages. Depending on the used protocol, users can define channels as a _topic_, _queue_, _routing key_, _path_, or _subject_.
# Why do we need channels?
-Channels play a crucial role in communication between `producers` and `consumers`. A producer can send a message through the channel, and the consumer receives messages from a particular channel. A channel's sole purpose is to ensure the right messages route to the right consumers.
-
-
+Channels are pivotal for establishing communication between producers and consumers. They enable producers to send messages, while consumers receive messages from specific channels. The primary function of a channel is to ensure that the intended messages reach the appropriate consumers.
```mermaid
graph LR
@@ -19,4 +17,6 @@ graph LR
C --> E[Consumer]
C --> F[Consumer]
```
-The diagram above shows the communication between a `producer` and `consumer`, with the producer sending a `message` through the `channel`. The channel then queues the message to the specific consumer.
+
+The diagram above illustrates the communication process between a producer and a consumer. The producer sends a message through the channel, which then queues the message for delivery to the specific consumer.
+The diagram above illustrates the communication process between a producer and multiple consumers. The producer sends a message through the channel, which then queues the message for delivery to the appropriate consumers.
\ No newline at end of file
diff --git a/markdown/docs/concepts/consumer.md b/markdown/docs/concepts/consumer.md
index 512970e11d4b..a115505419fd 100644
--- a/markdown/docs/concepts/consumer.md
+++ b/markdown/docs/concepts/consumer.md
@@ -4,12 +4,12 @@ weight: 4
---
## What is a consumer?
-In an Event Driven Architecture (EDA), a consumer is an application that listens for a particular event from a broker and reacts to it.
+A _consumer_ is an application that subscribes to a specific event from a broker and responds accordingly.
## Why do we need consumers?
-Unlike traditional REST APIs, in EDA, event consumers are not expected to respond immediately on the same connection. In this architecture, a consumer is unaware of the producer or other consumers; all they know is that when a broker sends them an event, it is because they subscribed to it.
+Unlike traditional REST APIs, in Event-Driven Architecture (EDA), event consumers are asynchronous, which means they are not required to respond immediately on the same connection. In this architecture, consumers are unaware of the producers or other consumers. All they know is that when a broker sends them an event, it is because they have subscribed to it.
-When you want events processed asynchronously in your application, the consumer plays an important role in completing that event data flow in the event channel.
+When you want your application to process events asynchronously, the consumer plays a crucial role in completing the event data flow through the event channel.
```mermaid
flowchart LR
@@ -26,7 +26,8 @@ flowchart LR
end
```
-The above diagram depicts a sample flow of events from `producer` to `broker` to `consumer`. In this instance, the `producer` publishes two events _(A and B)_ and sends them to the `broker`. Then each `consumer` subscribes to receive those events.
+The diagram above illustrates a sample flow of events from the `producer` to the `broker` to the `consumers`. In this scenario, the `producer` publishes two events _(A and B)_ and sends them to the `broker`. Subsequently, each `consumer` subscribes to receive those events.
+
Subscribers can also be producers.
diff --git a/markdown/docs/concepts/index.md b/markdown/docs/concepts/index.md
index 34e581fea077..63dd3b9573e3 100644
--- a/markdown/docs/concepts/index.md
+++ b/markdown/docs/concepts/index.md
@@ -5,9 +5,9 @@ weight: 1
import ContributionNotes from '@/assets/docs/fragments/contribution-notes.md';
-## Concepts: Define AsyncAPI features and capabilities
+## Concepts
-Welcome to AsyncAPI **Concepts**! Our Concepts section will define the concepts of AsyncAPI features and capabilities.
+Welcome to AsyncAPI **Concepts**! This section defines AsyncAPI features and capabilities.
diff --git a/markdown/docs/concepts/message.md b/markdown/docs/concepts/message.md
index e5e65e91fb0a..497bfa30a089 100644
--- a/markdown/docs/concepts/message.md
+++ b/markdown/docs/concepts/message.md
@@ -4,8 +4,9 @@ weight: 30
---
## What is a message?
-A `message` is a communication asset used to transmit or exchange information from a sender to the receiver through `channels`. A single `message` can be consumed by multiple independent receivers and can also be defined as an _event_ or _command_. The sender includes a payload of data (that has been serialized into an appropriate format, e.g., JSON, XML, binary, etc.) that needs to be processed by the receiver. It may also include metadata; information that describes the message itself. This metadata is often known as _headers_ or _properties_.
+A _message_ is a communication asset that transmits or exchanges information from a sender to the receiver through channels.
+One message can also be defined as an event or command and can be consumed by multiple independent receivers. The sender encodes a payload of data (serialized into a suitable format, such as JSON, XML, binary, or others) that requires processing by the receiver. Additionally, the message may include _metadata_, which is information that describes the message itself. This metadata is commonly referred to as _headers_ or _properties_.
``` mermaid
graph LR
@@ -17,11 +18,10 @@ A{{sender application}} --> b --> C{{receiver application}}
```
-In the diagram above, the sender application transmits a `message` to the receiver application.
+The diagram above illustrates how a sender application transmits a message through a channel to a receiver application, demonstrating the basic flow of message-based communication.
## Messages vs Events
-A `message` carries information from one application to the other, while an `event` is a message that provides details of something that has already occurred. One important aspect to note is that depending on the type of information a `message` contains, it can fall under an _event_, _query_, or _command_.
-*See the diagram below.*
+A **message** conveys information between applications, while an **event** is a message that provides details of something that has already occurred. A crucial aspect to note is that depending on the type of information a message carries, it can either be an event, query, or command. Check the diagram below.
``` mermaid
graph TD
@@ -32,4 +32,4 @@ graph TD
C --> E(Command)
```
-Overall, `events` are `messages` but not all `messages` are `events`.
+Summing up, events are messages, but not all messages are events.
diff --git a/markdown/docs/concepts/producer.md b/markdown/docs/concepts/producer.md
index ce17b9e31042..c2614d9c5b81 100644
--- a/markdown/docs/concepts/producer.md
+++ b/markdown/docs/concepts/producer.md
@@ -4,24 +4,26 @@ weight: 3
---
## What is a Producer?
-A producer is an application that senses state changes (events) and publishes those events as messages. An event indicates a state change or update triggered by a user's/device's action.
+A _producer_ is an application that detects state changes (_events_) and publishes these events as messages. An event signifies a state change or update triggered by a user’s or device’s action.
The following are sample events:
-* Placing an item in a shopping cart on an e-commerce website.
+* Adding an item to a shopping cart on an e-commerce website.
* Clicking the subscribe button on a YouTube channel.
-* A temperature change in a sensor.
+* Detecting a temperature change using a sensor.
+
## Why do we need Producers?
-One of the core concepts of event-driven architecture is the publish/subscribe communication model. Producers are publishers in this model; they're the first logical layer responsible for distributing messages to the broker so that others can subscribe to receive messages.
+The publish/subscribe communication model is one of the core concepts of event-driven architecture. In this model, producers are publishers, acting as the first logical layer responsible for distributing messages to the broker, enabling others to subscribe and receive these messages.
```mermaid
flowchart TD
a[Producer]-- Message 1 --->d[(Broker)]
d -- Message 1 --->g[Consumer]
```
-The diagram above depicts the communication between a **producer** publishing events to a specific channel in a **broker** and a **consumer** subscribed to the same channel.
-In some cases, an entity can be both a producer publishing messages to a specific channel in the broker and a consumer subscribing to messages from a different channel in the broker.
+The diagram above illustrates the communication flow between a producer who publishes events to a specific channel in a broker and a consumer who subscribes to the same channel.
+
+In some cases, an entity can simultaneously function as both a producer, publishing messages to a specific channel in the broker, and a consumer, subscribing to messages from a different channel in the broker.
```mermaid
flowchart LR
@@ -31,4 +33,4 @@ flowchart LR
c -- Message 2 ---> d[Consumer]
```
-In the diagram above, we see a producer publishing messages to a specific channel and a consumer subscribing to messages from that channel. We also have a second producer who publishes to one channel, but subscribes to messages from another.
+In the diagram above, there is a producer publishing messages to a specific channel and a consumer subscribing to messages from that channel. Also, there is a second producer publishing to one channel and subscribing to messages from another channel.
diff --git a/markdown/docs/concepts/protocol.md b/markdown/docs/concepts/protocol.md
index 61a454744844..8fb93541f008 100644
--- a/markdown/docs/concepts/protocol.md
+++ b/markdown/docs/concepts/protocol.md
@@ -5,7 +5,7 @@ weight: 25
## What is a protocol?
-A protocol is a set of rules that specifies how information is exchanged between applications and/or servers.
+A _protocol_ is a set of rules that governs the exchange of information between applications and/or servers.
Protocol examples:
* [WebSockets](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket)
@@ -14,7 +14,7 @@ Protocol examples:
* [MQTT](https://mqtt.org/)
## Why do we need protocols?
-Whenever a producer detects a state change (events) and publishes those events as messages, a protocol carries those messages to the channel and then to a consumer. Protocol plays a vital role in message transmission.
+Protocols play a crucial role in message transmission. Whenever a producer detects a state change (events) and publishes those events as messages, a protocol carries those messages to the channel and then to the consumer.
```mermaid
sequenceDiagram
@@ -23,8 +23,8 @@ sequenceDiagram
Publisher->>+Publisher: Delete(Msg)
```
-The diagram above depicts the message exchange flow from `producer` to `broker` to `consumer` using the MQTT protocol with QoS0 (quality of service 0). This means that information exchanged from `producer` to `broker` to `consumer` is delivered at most once.
+The diagram above illustrates the message exchange flow from `producer` to `broker` to `consumer` using the MQTT protocol with QoS0 (quality of service 0). In other words, the information transferred from the producer to broker to consumer is delivered at most once.
-The quality of service information rule is specified on a protocol level. Broker implementations and other involved actors must act accordingly.
+The quality of service information rule is defined at the protocol level. Broker implementations and other involved parties must adhere to this rule.
-In AsyncAPI documents, all protocol-specific details that the application follows can be described using [bindings](/docs/reference/specification/v2.5.0#definitionsBindings).
+In AsyncAPI documents, all protocol-specific details that the application follows can be described using [bindings](https://www.asyncapi.com/docs/reference/specification/latest#definitionsBindings).
diff --git a/markdown/docs/concepts/server.md b/markdown/docs/concepts/server.md
index 7d3a6441bb3e..d6f461076132 100644
--- a/markdown/docs/concepts/server.md
+++ b/markdown/docs/concepts/server.md
@@ -5,10 +5,10 @@ weight: 2
## What is a server?
-A server represents a messaging broker system where connections and communication between a producer and a consumer are established. Unlike traditional API servers which are dependent on request/response, message broker interactions occur back and forth over different channels.
+A _server_ acts as a _messaging broker_ system, establishing connections and facilitating communication between [_producers_](producer) and [_consumers_](consumer). Unlike traditional API servers that rely on request-response interactions, message broker interactions occur bidirectionally across various channels.
## What is the purpose of servers?
-Servers play an important role in maintaining a relationship between producers and consumers. When designing and setting up an event-driven application, servers are in charge of delivering asynchronous messages from the producer to the consumers through the use of channels. By integrating different messaging protocols, servers can transmit and exchange messages between clients.
+Servers play a crucial role in establishing a connection between producers and consumers. In the context of designing and setting up an event-driven application, servers are responsible for delivering asynchronous messages from the producer to the consumers through the use of [_channels_](channel). Additionally, servers can integrate various messaging [_protocols_](protocol) to facilitate the transmission and exchange of messages between _clients_.
### Clients and Server
```mermaid
@@ -18,7 +18,7 @@ flowchart TD
c[Client Mobile] --> b[(server)]
b --> c
```
-The diagram above describes a bi-directional communication between several **clients** and one **server**. In this case, in your AsyncAPI file, you describe the `server`, and therefore the [`Server Object`](https://www.asyncapi.com/docs/reference/specification/latest#serverObject) holds information about the actual server, including its physical location.
+The diagram above illustrates a bidirectional communication between one server and several clients. In this case, in your AsyncAPI file, you describe the `server`, so the [`Server Object`](https://www.asyncapi.com/docs/reference/specification/latest#serverObject) holds information about the actual server, including its physical location.
### Broker Centric
@@ -35,4 +35,4 @@ flowchart TD
a2 --> C[consumer2]
```
-The diagram above shows the *Broker Centric Architecture*. In this case, we created three AsyncAPI files for the `producer`, `consumer1`, and `consumer2`. In these AsyncAPI files, the [`Server Object`](https://www.asyncapi.com/docs/reference/specification/latest#serverObject) provides information about the `broker`, so that API users know where to connect to start receiving or sending messages.
+The diagram above illustrates the Broker-centric Architecture. In this case, there are three AsyncAPI files for the `producer`, `consumer1`, and `consumer2`. In these AsyncAPI files, the [`Server Object`](https://www.asyncapi.com/docs/reference/specification/latest#serverObject) provides information about the `broker`, so that API users know where to connect to start receiving or sending messages.
diff --git a/markdown/docs/tools/cli/usage.md b/markdown/docs/tools/cli/usage.md
index 8b0f46697058..84f59e8803c4 100644
--- a/markdown/docs/tools/cli/usage.md
+++ b/markdown/docs/tools/cli/usage.md
@@ -27,7 +27,7 @@ $ npm install -g @asyncapi/cli
$ asyncapi COMMAND
running command...
$ asyncapi (--version)
-@asyncapi/cli/2.7.2 linux-x64 node-v18.20.4
+@asyncapi/cli/2.11.0 linux-x64 node-v18.20.5
$ asyncapi --help [COMMAND]
USAGE
$ asyncapi COMMAND
@@ -52,6 +52,7 @@ USAGE
* [`asyncapi config versions`](#asyncapi-config-versions)
* [`asyncapi convert [SPEC-FILE]`](#asyncapi-convert-spec-file)
* [`asyncapi diff OLD NEW`](#asyncapi-diff-old-new)
+* [`asyncapi format [SPEC-FILE]`](#asyncapi-format-spec-file)
* [`asyncapi generate`](#asyncapi-generate)
* [`asyncapi generate fromTemplate ASYNCAPI TEMPLATE`](#asyncapi-generate-fromtemplate-asyncapi-template)
* [`asyncapi generate models LANGUAGE FILE`](#asyncapi-generate-models-language-file)
@@ -60,6 +61,7 @@ USAGE
* [`asyncapi new glee`](#asyncapi-new-glee)
* [`asyncapi new template`](#asyncapi-new-template)
* [`asyncapi optimize [SPEC-FILE]`](#asyncapi-optimize-spec-file)
+* [`asyncapi pretty SPEC-FILE`](#asyncapi-pretty-spec-file)
* [`asyncapi start`](#asyncapi-start)
* [`asyncapi start studio`](#asyncapi-start-studio)
* [`asyncapi validate [SPEC-FILE]`](#asyncapi-validate-spec-file)
@@ -99,7 +101,7 @@ EXAMPLES
$ asyncapi bundle ./asyncapi.yaml -o final-asyncapi.yaml --base ../public-api/main.yaml --baseDir ./social-media/comments-service
```
-_See code: [src/commands/bundle.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/bundle.ts)_
+_See code: [src/commands/bundle.ts](https://github.com/asyncapi/cli/blob/v2.11.0/src/commands/bundle.ts)_
## `asyncapi config`
@@ -113,7 +115,7 @@ DESCRIPTION
CLI config settings
```
-_See code: [src/commands/config/index.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/index.ts)_
+_See code: [src/commands/config/index.ts](https://github.com/asyncapi/cli/blob/v2.11.0/src/commands/config/index.ts)_
## `asyncapi config analytics`
@@ -133,7 +135,7 @@ DESCRIPTION
Enable or disable analytics for metrics collection
```
-_See code: [src/commands/config/analytics.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/analytics.ts)_
+_See code: [src/commands/config/analytics.ts](https://github.com/asyncapi/cli/blob/v2.11.0/src/commands/config/analytics.ts)_
## `asyncapi config context`
@@ -147,7 +149,7 @@ DESCRIPTION
Manage short aliases for full paths to AsyncAPI documents
```
-_See code: [src/commands/config/context/index.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/index.ts)_
+_See code: [src/commands/config/context/index.ts](https://github.com/asyncapi/cli/blob/v2.11.0/src/commands/config/context/index.ts)_
## `asyncapi config context add CONTEXT-NAME SPEC-FILE-PATH`
@@ -169,7 +171,7 @@ DESCRIPTION
Add a context to the store
```
-_See code: [src/commands/config/context/add.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/add.ts)_
+_See code: [src/commands/config/context/add.ts](https://github.com/asyncapi/cli/blob/v2.11.0/src/commands/config/context/add.ts)_
## `asyncapi config context current`
@@ -186,7 +188,7 @@ DESCRIPTION
Shows the current context that is being used
```
-_See code: [src/commands/config/context/current.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/current.ts)_
+_See code: [src/commands/config/context/current.ts](https://github.com/asyncapi/cli/blob/v2.11.0/src/commands/config/context/current.ts)_
## `asyncapi config context edit CONTEXT-NAME NEW-SPEC-FILE-PATH`
@@ -207,7 +209,7 @@ DESCRIPTION
Edit a context in the store
```
-_See code: [src/commands/config/context/edit.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/edit.ts)_
+_See code: [src/commands/config/context/edit.ts](https://github.com/asyncapi/cli/blob/v2.11.0/src/commands/config/context/edit.ts)_
## `asyncapi config context init [CONTEXT-FILE-PATH]`
@@ -230,7 +232,7 @@ DESCRIPTION
Initialize context
```
-_See code: [src/commands/config/context/init.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/init.ts)_
+_See code: [src/commands/config/context/init.ts](https://github.com/asyncapi/cli/blob/v2.11.0/src/commands/config/context/init.ts)_
## `asyncapi config context list`
@@ -247,7 +249,7 @@ DESCRIPTION
List all the stored contexts in the store
```
-_See code: [src/commands/config/context/list.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/list.ts)_
+_See code: [src/commands/config/context/list.ts](https://github.com/asyncapi/cli/blob/v2.11.0/src/commands/config/context/list.ts)_
## `asyncapi config context remove CONTEXT-NAME`
@@ -267,7 +269,7 @@ DESCRIPTION
Delete a context from the store
```
-_See code: [src/commands/config/context/remove.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/remove.ts)_
+_See code: [src/commands/config/context/remove.ts](https://github.com/asyncapi/cli/blob/v2.11.0/src/commands/config/context/remove.ts)_
## `asyncapi config context use CONTEXT-NAME`
@@ -287,7 +289,7 @@ DESCRIPTION
Set a context as current
```
-_See code: [src/commands/config/context/use.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/context/use.ts)_
+_See code: [src/commands/config/context/use.ts](https://github.com/asyncapi/cli/blob/v2.11.0/src/commands/config/context/use.ts)_
## `asyncapi config versions`
@@ -304,7 +306,7 @@ DESCRIPTION
Show versions of AsyncAPI tools used
```
-_See code: [src/commands/config/versions.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/config/versions.ts)_
+_See code: [src/commands/config/versions.ts](https://github.com/asyncapi/cli/blob/v2.11.0/src/commands/config/versions.ts)_
## `asyncapi convert [SPEC-FILE]`
@@ -332,7 +334,7 @@ DESCRIPTION
Convert asyncapi documents older to newer versions or OpenAPI/postman-collection documents to AsyncAPI
```
-_See code: [src/commands/convert.ts](https://github.com/asyncapi/cli/blob/v2.7.2/src/commands/convert.ts)_
+_See code: [src/commands/convert.ts](https://github.com/asyncapi/cli/blob/v2.11.0/src/commands/convert.ts)_
## `asyncapi diff OLD NEW`
@@ -342,7 +344,7 @@ Find diff between two asyncapi files
USAGE
$ asyncapi diff OLD NEW [-h] [-f json|yaml|yml|md] [-t breaking|non-breaking|unclassified|all]
[--markdownSubtype json|yaml|yml] [-o ] [--no-error] [-w] [--log-diagnostics] [--diagnostics-format
- json|stylish|junit|html|text|teamcity|pretty] [--fail-severity error|warn|info|hint]
+ json|stylish|junit|html|text|teamcity|pretty] [--fail-severity error|warn|info|hint] [-o ]
ARGUMENTS
OLD old spec path, URL or context-name
@@ -352,6 +354,7 @@ FLAGS
-f, --format=
+ );
+}
diff --git a/pages/newsletter.tsx b/pages/newsletter.tsx
index 05e59b090b68..acf102f2caf7 100644
--- a/pages/newsletter.tsx
+++ b/pages/newsletter.tsx
@@ -3,11 +3,14 @@ import React from 'react';
import Head from '@/components/Head';
import Container from '@/components/layout/Container';
import NewsletterSubscribe from '@/components/NewsletterSubscribe';
+import { Redirect } from '@/utils/redirect';
/**
* @description component that is used on landing page to embed newsletter and subscription option.
*/
export default function NewsletterIndexPage() {
+ Redirect();
+
return (