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](../../README.md). 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](../../docs/book/src/runtime/rust.md) and
[wire-format specification](../../spec/wire-format.md).

Licensed under either [MIT](../../LICENSE-MIT) or
[Apache-2.0](../../LICENSE-APACHE), at your option.