switchback-avro 0.0.1-0.dev.2

Shared Avro schema layer for the switchback framework.
Documentation

switchback-avro

[!WARNING] Early prototype while exploring design and aiming for equivalence with protobuf-mdbook, while expanding scope through traits and intermediary on-disk representation.

This is not ready for adoption, nor even stable at a v1alpha1 yet. You'll want to keep eyes on the repository for development.

Shared Avro schema document layer for the switchback-rs toolchain.

switchback-avro parses Avro JSON schema payloads (AsyncAPI avroSchema_v1, Avro .avsc JSON encoding) into IR and produces schema entity bodies for downstream family parsers such as switchback-asyncapi. It is a sibling shared layer to switchback-jsonschema for JSON Schema documents.

Usage

use serde_json::json;
use switchback_avro::{populate_avro_schema_body, AvroSchema};

let value = json!({
    "type": "record",
    "name": "User",
    "fields": [
        { "name": "id", "type": "long" },
        { "name": "name", "type": "string" }
    ]
});
let schema = AvroSchema::from_value(&value);
let body = populate_avro_schema_body(
    &value,
    "acme.events",
    "components",
    Some("application/vnd.apache.avro+json"),
);
assert_eq!(body.payload_format, "application/vnd.apache.avro+json");

Vendored Avro format meta-schemas live under meta-schemas/ with SHA-256 locks in meta-schemas.lock.toml (see ADR 0018).