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.