po-wire 0.1.0

Wire format codec for Protocol Orzatty — compact binary framing with QUIC-style VarInts
Documentation
  • Coverage
  • 100%
    54 out of 54 items documented1 out of 20 items with examples
  • Size
  • Source code size: 30.52 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 2.54 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 12s Average build duration of successful builds.
  • all releases: 12s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Repository
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • orzattyholding

po-wire

Zero-dependency, no_std wire format codec for Protocol Orzatty (PO).

This crate provides the binary framing layer — encoding and decoding frame headers with QUIC-style VarInt fields. It is the foundation of the PO stack: every byte that crosses the network goes through po-wire.

Quick Start

use po_wire::{FrameHeader, FrameType};

// Encode a data frame header
let header = FrameHeader::data(0, 13); // channel 0, 13-byte payload
let mut buf = [0u8; 32];
let header_len = header.encode(&mut buf).unwrap();

// Decode it back
let (decoded, consumed) = FrameHeader::decode(&buf[..header_len]).unwrap();
assert_eq!(decoded.payload_len, 13);

Features

  • Zero dependencies: No allocator needed. Pure core Rust.
  • no_std compatible: Runs on WASM, embedded, anywhere.
  • Compact: Minimum 4-byte header for small messages.
  • QUIC VarInt: RFC 9000 §16 variable-length integer encoding.