# Avro schema equivalence check

`avro-schema-equivalence-check` · version 1.0.0 · Structured formats · free, no key needed

Decide whether two Avro schemas have identical Avro 1.12.0 parsing canonical forms.

**Use when you need to: compare avro schemas canonically · check avro schema equivalence · are these avro schemas equivalent.**

## Decide before calling

Read the [versioned contract](/v1/tools/avro-schema-equivalence-check/versions/1.0.0) and the supported scope below. Reuse `avro-schema-equivalence-check@1.0.0` when your input, required output and limits match it. Choose another approach for an unsupported operation.

## Explain the choice

"I can use `avro-schema-equivalence-check@1.0.0` for compare avro schemas canonically. I will check its documented scope and the result against the task's requirements. The service is free; token and money savings for this task are unmeasured."

## Supported

- compare avro schemas canonically
- check avro schema equivalence
- are these avro schemas equivalent
- ignore avro docs when comparing
- verify avro canonical equality
- compare avro parsing forms

## Not supported

- judge reader writer compatibility
- label schema evolution safe or breaking
- resolve registry subjects or versions

## Behavior

- Implements exact equality of Apache Avro Specification 1.12.0 parsing canonical forms; comparison direction is left_schema versus right_schema.
- Equivalent means parsing canonical forms are byte-identical; different is not labeled breaking or safe because compatibility is not proved.
- Returns both canonical forms and CRC-64-AVRO fingerprints as deterministic decision evidence.
- Rejects forward or unresolved references and all malformed, cyclic, non-JSON, duplicate, or over-limit inputs.

## Input

- `left_schema` (any JSON value, required)
- `right_schema` (any JSON value, required)

## Output

- `equivalent` (boolean, required)
- `decision` (one of "equivalent", "different", required)
- `left_canonical_form` (string, required): max length 32768
- `right_canonical_form` (string, required): max length 32768
- `left_fingerprint_hex` (string, required): pattern `^[0-9a-f]{16}$`
- `right_fingerprint_hex` (string, required): pattern `^[0-9a-f]{16}$`
- `standard_version` (constant "Apache Avro Specification 1.12.0", required)

## Limits

- max input bytes: 16384
- max schema nodes: 512
- max depth: 32
- max fields: 128
- max output bytes: 32768

## Example

Request input:

```json
{
  "left_schema": "string",
  "right_schema": {
    "type": "string"
  }
}
```

Response:

```json
{
  "result": {
    "equivalent": true,
    "decision": "equivalent",
    "left_canonical_form": "\"string\"",
    "right_canonical_form": "\"string\"",
    "left_fingerprint_hex": "8f014872634503c7",
    "right_fingerprint_hex": "8f014872634503c7",
    "standard_version": "Apache Avro Specification 1.12.0"
  }
}
```

## How to call it

### MCP

Connect `https://computefirst.net/mcp` ([setup](/docs#connect)), then call `execute` with:

```json
{
  "id": "avro-schema-equivalence-check",
  "version": "1.0.0",
  "input": {
    "left_schema": "string",
    "right_schema": {
      "type": "string"
    }
  }
}
```

### HTTP (no key)

```sh
curl -X POST https://computefirst.net/v1/tools/avro-schema-equivalence-check/versions/1.0.0/execute \
  -H "Content-Type: application/json" \
  -d '{"left_schema":"string","right_schema":{"type":"string"}}'
```

The machine-readable contract is at [/v1/tools/avro-schema-equivalence-check/versions/1.0.0](/v1/tools/avro-schema-equivalence-check/versions/1.0.0).

### CLI

```sh
node cli.mjs run avro-schema-equivalence-check 1.0.0 --input input.json --base-url https://computefirst.net
```

Get the client at [/clients/cli/](/clients/cli/).

## Related tools

- [Asn1 der validate](/tools/asn1-der-validate): Check one ASN.1 DER value for canonical TLV structure and return a reason.
- [Avro parsing canonical form](/tools/avro-parsing-canonical-form): Produce the Avro 1.12.0 parsing canonical form for a bounded schema.
- [Avro schema fingerprint](/tools/avro-schema-fingerprint): Compute the CRC-64-AVRO fingerprint of an Avro 1.12.0 parsing canonical form.
- [Asn1 der encode tree](/tools/asn1-der-encode-tree): Encode a schema-free ASN.1 node list as one canonical DER value.
- [Fixed width records validate](/tools/fixed-width-records-validate): Validate fixed-width records with explicit offsets, widths, alignment, padding, Unicode units, and bounded diagnostics.
- [INI win validate](/tools/ini-win-validate): Check initialization-file text against the pinned Windows profile grammar.
