asyncapi-rust-models 0.1.0

Runtime data structures for asyncapi-rust (AsyncAPI 3.0 spec models)
Documentation

Runtime data structures for AsyncAPI 3.0 specifications

This crate provides Rust types that represent AsyncAPI 3.0 specification objects. These types are used by the proc macros to generate specifications at compile time and can also be constructed manually.

Overview

The main types mirror the AsyncAPI 3.0 specification structure:

  • [AsyncApiSpec] - Root specification object
  • [Info] - General API information
  • [Server] - Server connection details
  • [Channel] - Communication channels
  • [Operation] - Send/receive operations
  • [Message] - Message definitions
  • [Schema] - JSON Schema definitions
  • [Components] - Reusable components

Serialization

All types implement [serde::Serialize] and [serde::Deserialize] for JSON serialization, following the AsyncAPI 3.0 specification's JSON Schema.

Example

use asyncapi_rust_models::*;
use std::collections::HashMap;

// Create a simple AsyncAPI specification
let spec = AsyncApiSpec {
    asyncapi: "3.0.0".to_string(),
    info: Info {
        title: "My API".to_string(),
        version: "1.0.0".to_string(),
        description: Some("A simple API".to_string()),
    },
    servers: None,
    channels: None,
    operations: None,
    components: None,
};

// Serialize to JSON
let json = serde_json::to_string_pretty(&spec).unwrap();