搜索

ppt文档 Borsh 安全高效的二进制序列化

3.35 MB 21 页 0 下载 103 浏览 0 评论 0 收藏
所属分类: 后端开发 / Rust
语言 格式 评分
中文(简体)
.pptx
3
摘要
文档介绍了Borsh作为一种安全高效的二进制序列化工具,重点阐述了其在序列化过程中的轻量级特性、确定性保证以及高效的执行速度。Borsh通过字节级别的确定性映射,确保了对象与其二进制表示之间的唯一性和双射关系,特别适用于需要高效序列化和反序列化的场景。文档还展示了Borsh在Rust中的实现优势,包括无需依赖serde库,原生实现序列化逻辑,从而在性能上显著优于其他解决方案。此外,Borsh在处理动态长度集合时采用特定规则,进一步提升了其序列化效率。
AI总结
# Borsh:安全高效的二进制序列化总结 ## 核心优势 1. **轻量级** - 编译后的体积更小。 - 序列化后的二进制更精简。 2. **高效性** - **字节级别确定性**:每个对象与其二进制表示之间存在双射映射,确保不同对象的二进制表示唯一且不同,便于基于二进制表示进行哈希操作。 - **执行速度快**:在 Rust 中,Borsh 通过原生实现序列化和反序列化逻辑,性能显著优于其他解决方案。 3. **规范性** - **非自描述**:通过严格规范确保序列化后二进制的唯一性和确定性。 - 整数采用低字节序(little endian)存储。 - 动态长度的集合先用 `u32` 存储集合大小,无序集合(如 `hashmap`)存储时按 `key` 字典序排序。 ## 性能对比 - **体积对比**: - Borsh 编码:18284 字节 - Bincode 编码:19320 字节 - Borsh 的序列化结果更精简。 - **执行速度**: - Borsh 的序列化和反序列化速度显著领先于其他解决方案。 ## 应用场景 - **案例研究**: ```rust #[derive(BorshSerialize, BorshDeserialize, PartialEq, Debug)] struct A { x: u64, y: String, } #[test] fn test_simple_struct() { let a = A { x: 3301, y: "liber primus".to_string() }; let encoded_a = a.try_to_vec().unwrap(); let decoded_a = from_slice::(&encoded_a).unwrap(); assert_eq!(a, decoded_a); } ``` 通过上述示例,展示了 Borsh 的基本用法及其可靠性和高效性。 ## 总结 Borsh 是一种安全高效的二进制序列化方案,凭借其轻量级、确定性、高性能和规范性,适用于需要高效序列化和反序列化的场景,尤其在 Rust 开发中表现突出。
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余 9 页请下载阅读 -
文档评分
请文明评论,理性发言.