2 releases
0.0.1-beta.1 | Aug 14, 2024 |
---|---|
0.0.0-alpha.0 | Aug 13, 2024 |
#725 in Encoding
35 downloads per month
21KB
379 lines
rkyv_rpc
Synopsis
This crate provides a macro to declare an enum specifically to carry RPC commands in such a way as to ensure cross-endian and backwards compatibility.
Unlike #[derive(rkyv::Archive)]
, this implementation create a custom enum discriminator for which the bytes are mirrored, creating the same representation regardless
or endianness. Furthermore, this allows for discriminators larger than 1 byte, allowing one to space out custom discriminator values to allow for older software
to still accept the same data structures while gracefully failing to recognize newer discriminants.
Furthermore, a framed codec is provided for safely reading and writing binary streams of rkyv objects.
Cargo Features
codec
(default) - Enables theEncoder
/Decoder
implementations to write/read rkyv objects to byte buffers andAsyncWrite
/AsyncRead
streams via tokio'sFramed
unaligned
- Enable unaligned accesses by default for rkyv. This saves an extra clone of the incoming bytes before decoding.
Dependencies
~5–11MB
~119K SLoC