libvirt-xdr

Crates.iolibvirt-xdr
lib.rslibvirt-xdr
version0.1.1
created_at2025-12-13 16:09:07.299843+00
updated_at2025-12-13 16:20:42.40067+00
descriptionXDR serialization/deserialization for libvirt protocol
homepagehttps://github.com/jimyag/libvirt-rs
repositoryhttps://github.com/jimyag/libvirt-rs
max_upload_size
id1983117
size40,105
jimyag (jimyag)

documentation

README

libvirt-xdr

XDR (External Data Representation) serialization/deserialization for libvirt protocol.

This crate provides serde-based XDR encoding/decoding as specified in RFC 4506, specifically tailored for the libvirt RPC protocol.

Features

  • Serde-based serializer and deserializer
  • Support for all XDR primitive types (int, uint, hyper, bool, string, opaque, etc.)
  • Special handling for fixed-length opaque data (UUID)
  • 4-byte alignment and padding

Usage

use serde::{Serialize, Deserialize};

#[derive(Serialize, Deserialize)]
struct MyStruct {
    name: String,
    value: i32,
}

// Serialize to XDR
let data = MyStruct { name: "test".into(), value: 42 };
let bytes = libvirt_xdr::to_bytes(&data)?;

// Deserialize from XDR
let decoded: MyStruct = libvirt_xdr::from_bytes(&bytes)?;

License

MIT OR Apache-2.0

Commit count: 0

cargo fmt