{"id":14155658,"url":"https://github.com/asyncapi/avro-schema-parser","last_synced_at":"2025-06-17T07:40:26.992Z","repository":{"id":37938744,"uuid":"279697446","full_name":"asyncapi/avro-schema-parser","owner":"asyncapi","description":"An AsyncAPI schema parser for Avro 1.x schemas.","archived":false,"fork":false,"pushed_at":"2024-10-08T15:01:51.000Z","size":1546,"stargazers_count":31,"open_issues_count":10,"forks_count":19,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-10-29T22:38:03.808Z","etag":null,"topics":["avro","avro-schema","avro-schema-registry","get-global-node-release-workflows","get-global-releaserc","nodejs","parser"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/asyncapi.png","metadata":{"funding":{"github":"asyncapi","patreon":null,"open_collective":"asyncapi","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null},"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-14T21:33:01.000Z","updated_at":"2024-10-08T15:01:59.000Z","dependencies_parsed_at":"2023-02-17T09:31:13.021Z","dependency_job_id":"dd5b7b9d-fad2-4db5-b6f2-5288cc94e564","html_url":"https://github.com/asyncapi/avro-schema-parser","commit_stats":{"total_commits":242,"total_committers":16,"mean_commits":15.125,"dds":0.1652892561983471,"last_synced_commit":"910e63e0b344dc0f8fa671c10d172f37267f9767"},"previous_names":[],"tags_count":40,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asyncapi%2Favro-schema-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asyncapi%2Favro-schema-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asyncapi%2Favro-schema-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asyncapi%2Favro-schema-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asyncapi","download_url":"https://codeload.github.com/asyncapi/avro-schema-parser/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228793828,"owners_count":17973139,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["avro","avro-schema","avro-schema-registry","get-global-node-release-workflows","get-global-releaserc","nodejs","parser"],"created_at":"2024-08-17T08:04:46.726Z","updated_at":"2024-12-09T02:31:30.119Z","avatar_url":"https://github.com/asyncapi.png","language":"TypeScript","funding_links":["https://github.com/sponsors/asyncapi","https://opencollective.com/asyncapi"],"categories":["nodejs"],"sub_categories":[],"readme":"# Avro Schema Parser\n\nAn AsyncAPI schema parser for Avro 1.x schemas.\n\n\u003e **Note**\n\u003e Version \u003e= `2.0.0` of this package is only supported by the `@asyncapi/parser` version \u003e= `2.0.0`.\n\n\u003c!-- toc is generated with GitHub Actions do not remove toc markers --\u003e\n\n\u003c!-- toc --\u003e\n\n- [Installation](#installation)\n- [Usage](#usage)\n  * [Usage with remote references](#usage-with-remote-references)\n  * [Usage with local references](#usage-with-local-references)\n  * [Usage with Confluent Schema Registry](#usage-with-confluent-schema-registry)\n    + [Create an API key](#create-an-api-key)\n    + [Copy the key and the secret](#copy-the-key-and-the-secret)\n    + [Use them on your AsyncAPI document](#use-them-on-your-asyncapi-document)\n- [Features](#features)\n  * [Validation of Avro schemas](#validation-of-avro-schemas)\n  * [Support of required attributes](#support-of-required-attributes)\n  * [Support for extra attributes on top of Avro specification](#support-for-extra-attributes-on-top-of-avro-specification)\n    + [List of all supported extra attributes](#list-of-all-supported-extra-attributes)\n  * [Support for names and namespaces](#support-for-names-and-namespaces)\n- [Limitations](#limitations)\n  * [Float and double-precision numbers](#float-and-double-precision-numbers)\n  * [Hardcoded key and secret](#hardcoded-key-and-secret)\n- [Contributors](#contributors)\n\n\u003c!-- tocstop --\u003e\n\n## Installation\n\n```bash\nnpm install @asyncapi/avro-schema-parser\n// OR\nyarn add @asyncapi/avro-schema-parser\n```\n\n## Usage\n\n```js\nimport { Parser } from '@asyncapi/parser';\nimport { AvroSchemaParser } from '@asyncapi/avro-schema-parser';\n\nconst parser = new Parser();\nparser.registerSchemaParser(AvroSchemaParser()); \n\nconst asyncapiWithAvro = `\nasyncapi: 2.0.0\ninfo:\n  title: Example with Avro\n  version: 0.1.0\nchannels:\n  example:\n    publish:\n      message:\n        schemaFormat: 'application/vnd.apache.avro;version=1.9.0'\n        payload: # The following is an Avro schema in YAML format (JSON format is also supported)\n          type: record\n          name: User\n          namespace: com.company\n          doc: User information\n          fields:\n            - name: displayName\n              type: string\n            - name: email\n              type: string\n            - name: age\n              type: int\n`\n\nconst { document } = await parser.parse(asyncapiWithAvro);\n```\n\n```js\nconst { Parser } = require('@asyncapi/parser');\nconst { AvroSchemaParser } = require('@asyncapi/raml-dt-schema-parser');\n\nconst parser = new Parser();\nparser.registerSchemaParser(AvroSchemaParser()); \n\nconst asyncapiWithAvro = `\nasyncapi: 2.0.0\ninfo:\n  title: Example with Avro\n  version: 0.1.0\nchannels:\n  example:\n    publish:\n      message:\n        schemaFormat: 'application/vnd.apache.avro;version=1.9.0'\n        payload: # The following is an Avro schema in YAML format (JSON format is also supported)\n          type: record\n          name: User\n          namespace: com.company\n          doc: User information\n          fields:\n            - name: displayName\n              type: string\n            - name: email\n              type: string\n            - name: age\n              type: int\n```\n\n### Usage with remote references\n\n```js\nimport { Parser } from '@asyncapi/parser';\nimport { AvroSchemaParser } from '@asyncapi/avro-schema-parser';\n\nconst parser = new Parser();\nparser.registerSchemaParser(AvroSchemaParser()); \n\nconst asyncapiWithAvro = `\nasyncapi: 2.0.0\ninfo:\n  title: Example with Avro\n  version: 0.1.0\nchannels:\n  example:\n    publish:\n      message:\n        schemaFormat: 'application/vnd.apache.avro;version=1.9.0'\n        payload:\n          $ref: 'https://schemas.example.com/user'\n`\n\nconst { document } = await parser.parse(asyncapiWithAvro);\n```\n\n```js\nconst { Parser } = require('@asyncapi/parser');\nconst { AvroSchemaParser } = require('@asyncapi/raml-dt-schema-parser');\n\nconst parser = new Parser();\nparser.registerSchemaParser(AvroSchemaParser()); \n\nconst asyncapiWithAvro = `\nasyncapi: 2.0.0\ninfo:\n  title: Example with Avro\n  version: 0.1.0\nchannels:\n  example:\n    publish:\n      message:\n        schemaFormat: 'application/vnd.apache.avro;version=1.9.0'\n        payload:\n          $ref: 'https://schemas.example.com/user'\n`\n\nconst { document } = await parser.parse(asyncapiWithAvro);\n```\n\n### Usage with local references\n\n```js\nimport { Parser } from '@asyncapi/parser';\nimport { AvroSchemaParser } from '@asyncapi/avro-schema-parser';\n\nconst parser = new Parser();\nparser.registerSchemaParser(AvroSchemaParser()); \n\nconst asyncapiWithAvro = `\nasyncapi: 2.0.0\ninfo:\n  title: Example with Avro\n  version: 0.1.0\nchannels:\n  example:\n    publish:\n      message:\n        schemaFormat: 'application/vnd.apache.avro;version=1.9.0'\n        payload:\n          $ref: 'local/path/to/file/user'\n`\n\nconst { document } = await parser.parse(asyncapiWithAvro);\n```\n\n```js\nconst { Parser } = require('@asyncapi/parser');\nconst { AvroSchemaParser } = require('@asyncapi/raml-dt-schema-parser');\n\nconst parser = new Parser();\nparser.registerSchemaParser(AvroSchemaParser()); \n\nconst asyncapiWithAvro = `\nasyncapi: 2.0.0\ninfo:\n  title: Example with Avro\n  version: 0.1.0\nchannels:\n  example:\n    publish:\n      message:\n        schemaFormat: 'application/vnd.apache.avro;version=1.9.0'\n        payload:\n          $ref: 'local/path/to/file/user'\n`\n\nconst { document } = await parser.parse(asyncapiWithAvro);\n```\n\n### Usage with Confluent Schema Registry\n\n#### Create an API key\n\n![](./assets/create-key.png)\n\n#### Copy the key and the secret\n\n![](./assets/key-secret-details.png)\n\n#### Use them on your AsyncAPI document\n\n```js\nimport { Parser } from '@asyncapi/parser';\nimport { AvroSchemaParser } from '@asyncapi/avro-schema-parser';\n\nconst parser = new Parser();\nparser.registerSchemaParser(AvroSchemaParser()); \n\nconst asyncapiWithAvro = `\nasyncapi: 2.0.0\ninfo:\n  title: Example with Avro\n  version: 0.1.0\nchannels:\n  example:\n    publish:\n      message:\n        schemaFormat: 'application/vnd.apache.avro;version=1.9.0'\n        payload:\n          $ref: 'https://LY422RBU2HN6JQ5T:+f8wz9a0iM06AX7xfwbzSM9YPw/JIkr22Cvl5EKT5Hb1d/nz5nOpbXV/vZC+Iz5c@example.europe-west3.gcp.confluent.cloud/subjects/test/versions/1/schema'\n`\n\nconst { document } = await parser.parse(asyncapiWithAvro);\n```\n\n```js\nconst { Parser } = require('@asyncapi/parser');\nconst { AvroSchemaParser } = require('@asyncapi/raml-dt-schema-parser');\n\nconst parser = new Parser();\nparser.registerSchemaParser(AvroSchemaParser()); \n\nconst asyncapiWithAvro = `\nasyncapi: 2.0.0\ninfo:\n  title: Example with Avro\n  version: 0.1.0\nchannels:\n  example:\n    publish:\n      message:\n        schemaFormat: 'application/vnd.apache.avro;version=1.9.0'\n        payload:\n          $ref: 'https://LY422RBU2HN6JQ5T:+f8wz9a0iM06AX7xfwbzSM9YPw/JIkr22Cvl5EKT5Hb1d/nz5nOpbXV/vZC+Iz5c@example.europe-west3.gcp.confluent.cloud/subjects/test/versions/1/schema'\n`\n\nconst { document } = await parser.parse(asyncapiWithAvro);\n```\n\n## Features\n\n### Validation of Avro schemas\n\nAvro schemas included in parsed AsyncAPI documents are validated using [avsc](https://www.npmjs.com/package/avsc). The `parser.validate(...)` function returns all validation issues.\n\n```js\nimport { Parser } from '@asyncapi/parser';\nimport { AvroSchemaParser } from '@asyncapi/avro-schema-parser';\n\nconst parser = new Parser();\nparser.registerSchemaParser(AvroSchemaParser()); \n\nconst asyncapiWithInvalidAvro = `\nasyncapi: 2.0.0\ninfo:\n  title: Example with Avro\n  version: 0.1.0\nchannels:\n  example:\n    publish:\n      message:\n        schemaFormat: 'application/vnd.apache.avro;version=1.9.0'\n        payload:\n          type: notAValidAvroType\n`;\n\nconst diagnostics = await parser.validate(doc);\n// Custom schema issues are stored by the code \"asyncapi-schemas-v2\"\nconst avroDiagnostics = diagnostics.filter(d =\u003e d.code === 'asyncapi-schemas-v2');\nconsole.log(avroDiagnostics);\n```\n\n```js\nconst { Parser } = require('@asyncapi/parser');\nconst { AvroSchemaParser } = require('@asyncapi/raml-dt-schema-parser');\n\nconst parser = new Parser();\nparser.registerSchemaParser(AvroSchemaParser()); \n\nconst asyncapiWithInvalidAvro = `\nasyncapi: 2.0.0\ninfo:\n  title: Example with Avro\n  version: 0.1.0\nchannels:\n  example:\n    publish:\n      message:\n        schemaFormat: 'application/vnd.apache.avro;version=1.9.0'\n        payload:\n          type: notAValidAvroType\n`;\n\nconst diagnostics = await parser.validate(doc);\n// Custom schema issues are stored by the code \"asyncapi-schemas-v2\"\nconst avroDiagnostics = diagnostics.filter(d =\u003e d.code === 'asyncapi-schemas-v2');\nconsole.log(avroDiagnostics);\n```\n\n\u003e **Note**\n\u003e `parser.parse(...)` function also returns `diagnostics` data with all the validation issues.\n\n### Support of required attributes\n\nRequired fields are fields with no default value and without the `\"null\"` union element.\n\n### Support for extra attributes on top of Avro specification\n\nAdditional attributes not defined in the [Avro Specification](https://avro.apache.org/docs/current/spec.html) are permitted and are treated as a metadata by the specification. To improve human readability of generated AsyncAPI documentation and to leverage more features from the JSON schema we included support for the extra attributes that can be added into Avro document.\n\n#### List of all supported extra attributes\n\n- `example` - Can be used to define the example value from the business domain of given field. Value will be propagated into [examples attribute](https://json-schema.org/draft/2020-12/json-schema-validation.html#rfc.section.9.5) of JSON schema and therefore will be picked for the generated \"Example of payload\" when using some AsyncAPI documentation generator.\n\nFor Number instances:\n\n- `multipleOf` - Can be used to define [the multipleOf value of a numeric instance](https://json-schema.org/draft/2020-12/json-schema-validation.html#rfc.section.6.2.1). The `multipleOf` MUST be a number, strictly greater than 0.\n- `maximum` - Can be used to define [the maximum value of a numeric instance](https://json-schema.org/draft/2020-12/json-schema-validation.html#rfc.section.6.2.2).\n- `exclusiveMaximum` - Can be used to define [the exclusiveMaximum value of a numeric instance](https://json-schema.org/draft/2020-12/json-schema-validation.html#rfc.section.6.2.3).\n- `minimum` - Can be used to define [the minimum value of a numeric instance](https://json-schema.org/draft/2020-12/json-schema-validation.html#rfc.section.6.2.4).\n- `exclusiveMinimum` - Can be used to define [the exclusiveMinimum value of a numeric instance](https://json-schema.org/draft/2020-12/json-schema-validation.html#rfc.section.6.2.5).\n\nFor String instances:\n- `maxLength` - Can be used to define [the maxLength value of a string instance](https://json-schema.org/draft/2020-12/json-schema-validation.html#rfc.section.6.3.1). The value of this keyword MUST be a non-negative integer.\n- `minLength` - Can be used to define [the minLength value of a string instance](https://json-schema.org/draft/2020-12/json-schema-validation.html#rfc.section.6.3.2). The value of this keyword MUST be a non-negative integer.\n- `pattern` - Can be used to define [the pattern value of a string instance](https://json-schema.org/draft/2020-12/json-schema-validation.html#rfc.section.6.3.3).\n\nFor Array instances:\n- `maxItems` - Can be used to define [the maxItems value of a string instance](https://json-schema.org/draft/2020-12/json-schema-validation.html#rfc.section.6.4.1). The value of this keyword MUST be a non-negative integer.\n- `minItems` - Can be used to define [the minItems value of a string instance](https://json-schema.org/draft/2020-12/json-schema-validation.html#rfc.section.6.4.2). The value of this keyword MUST be a non-negative integer.\n- `uniqueItems` - Can be used to define [the uniqueItems value of a string instance](https://json-schema.org/draft/2020-12/json-schema-validation.html#rfc.section.6.4.3). The value of this keyword MUST be a boolean.\n\n### Support for names and namespaces\n\nIf, at the top level of the Avro schema, the 'name' attribute is defined, it will be copied to the corresponding JSON schema's 'x-parser-schema-id' attribute. If the Avro schema also has the 'namespace' attribute defined, then that schema's fully qualified name will be put into that attribute. The fully qualified name is defined by the namespace, followed by a dot, followed by the name.\n\nIf there are two schemas that resolve to the same fully qualified name, only the last one will be returned by the parser. Make sure names of your schemas are unique.\n\nIf no name attribute is present, the 'x-parser-schema-id' will have a generated unique id with a name like 'anonymous-schema-1' generated by the main parser. 'x-parser-schema-id' is one of the [custom extensions](https://github.com/asyncapi/parser-js/#custom-extensions) supported by the parser.\n\n## Limitations\n\n### Float and double-precision numbers\n\nJSON numbers ([RFC 4627, section 2.4](http://tools.ietf.org/html/rfc4627)) don't define any limit to the scale and/or precision of numbers. That said, we can enforce limits on `int` and `long` but we can't enforce them on `float` and `double` because they can't accurately be represented on JSON Schema.\n\n\u003e Since we support extra attributes on field, you can set `minimum` and `maximum` attribute on float and double types to display number limits.\n\n### Hardcoded key and secret\n\nThis is not a limitation of this package per se but of the [JSON Reference RFC](https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03). So far, you can only hardcode the values for `key` and `secret` on the `$ref` URL.\n\n## Contributors\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://www.fmvilas.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/242119?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eFran Méndez\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/asyncapi/avro-schema-parser/commits?author=fmvilas\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#maintenance-fmvilas\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e \u003ca href=\"https://github.com/asyncapi/avro-schema-parser/pulls?q=is%3Apr+reviewed-by%3Afmvilas\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e \u003ca href=\"#ideas-fmvilas\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://www.brainfart.dev/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/6995927?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eLukasz Gornicki\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#maintenance-derberg\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e \u003ca href=\"https://github.com/asyncapi/avro-schema-parser/pulls?q=is%3Apr+reviewed-by%3Aderberg\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e \u003ca href=\"#infra-derberg\" title=\"Infrastructure (Hosting, Build-Tools, etc)\"\u003e🚇\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://blog.ineat-conseil.fr/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/5501911?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eLudovic Dussart\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/asyncapi/avro-schema-parser/commits?author=M3lkior\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#maintenance-M3lkior\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e \u003ca href=\"https://github.com/asyncapi/avro-schema-parser/pulls?q=is%3Apr+reviewed-by%3AM3lkior\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://dalelane.co.uk/blog\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/1444788?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDale Lane\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/asyncapi/avro-schema-parser/commits?author=dalelane\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#maintenance-dalelane\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e \u003ca href=\"https://github.com/asyncapi/avro-schema-parser/pulls?q=is%3Apr+reviewed-by%3Adalelane\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/kolb0401\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/1172285?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJonathan\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/asyncapi/avro-schema-parser/commits?author=kolb0401\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/ITman1\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/1372054?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRadim Loskot\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/asyncapi/avro-schema-parser/commits?author=ITman1\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://www.damaru.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/3926925?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMichael Davis\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/asyncapi/avro-schema-parser/commits?author=damaru-inc\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/germanschnyder\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/1844525?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eGermán Schnyder\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/asyncapi/avro-schema-parser/commits?author=germanschnyder\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasyncapi%2Favro-schema-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasyncapi%2Favro-schema-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasyncapi%2Favro-schema-parser/lists"}