vexil-runtime 0.6.0

Runtime support for Vexil generated code — bit-level I/O, Pack/Unpack traits, wire encoding primitives
Documentation

vexil-runtime

Rust wire runtime for code generated by Vexil. Generated types use it for LSB-first bit I/O, scalar encodings, bounded recursion, and the Pack/Unpack contracts.

Main surfaces

API Role
BitWriter / BitReader Bit-accurate output and bounded input
Pack / Unpack Generated encode and decode traits
EncodeError / DecodeError Wire and resource-limit failures
SchemaHandshake Encode and compare schema hashes and versions
leb128 / zigzag Defined integer transforms

Borrowing reader methods can return byte and string slices backed by the input buffer. They are local runtime APIs; generated ownership choices vary by target and type.

Wire model

Fields are packed in ordinal order. Sub-byte values fill each byte LSB-first, multi-byte scalars are little-endian, and a message is padded only when the contract requires byte alignment.

The runtime enforces maintained recursion, byte-length, and collection-count limits. Applications must still provide bounded message framing and their own transport security.

See the Rust runtime guide and wire-format specification.

Licensed under either MIT or Apache-2.0, at your option.