#rkyv #rpc #no-std

no-std rkyv_rpc

使用rkyv定义RPC协议的辅助工具

2个版本

0.0.1-beta.12024年8月14日
0.0.0-alpha.02024年8月13日

#1201 in 编码

32 每月下载量

MIT/Apache

21KB
379 代码行

rkyv_rpc

crates.io Documentation MIT/Apache-2 licensed

概述

此crate提供了一个宏,用于声明一个枚举,专门用于携带RPC命令,以确保跨字节序和向后兼容性。

#[derive(rkyv::Archive)]不同,此实现创建了一个自定义的枚举判别器,其字节是镜像的,从而创建了一个与字节序无关的相同表示。此外,这允许判别器大于1个字节,允许将自定义判别器值分散开,以便旧软件仍然可以接受相同的数据结构,同时优雅地拒绝识别新的判别器。

此外,还提供了一个用于安全读取和写入rkyv对象的二进制流的框架编解码器。

Cargo功能

  • codec(默认)- 启用Encoder/Decoder实现将rkyv对象写入/读取到字节数组和AsyncWrite/AsyncRead流,通过tokio的Framed
  • unaligned - 默认启用rkyv的非对齐访问。这可以在解码前节省额外的字节克隆。

依赖关系

~4.5–6.5MB
~115K SLoC