@@ -67,6 +67,44 @@ If needed, a section can be split into subsections with a "------" delimiter.
67
67
68
68
## Library & Tooling Updates
69
69
70
+ ### [ rkyv]
71
+
72
+ [ rkyv] is a zero-copy deserialization framework for Rust. It's similar to
73
+ FlatBuffers and Cap'n Proto and can be used for data storage and messaging.
74
+
75
+ It has a handful of features that make it stand out:
76
+
77
+ - No schema restrictions
78
+ - HashMap support out of the box
79
+ - Trait object support through the [ ` rkyv_dyn ` ] crate
80
+ - Validation through the [ ` bytecheck ` ] crate, suitable for untrusted and
81
+ potentially malicious data
82
+ - Safe mutable archives with pinning
83
+
84
+ Reddit user [ vlmutolo] also made a [ toy benchmark] comparing rkyv against serde
85
+ and bincode and found that rkyv had promising initial numbers:
86
+
87
+ ``` text
88
+ serialize (bincode): 89 ns/iter
89
+ serialize (rkyv): 86 ns/iter
90
+
91
+ deserialize (bincode): 118 ns/iter
92
+ deserialize (rkyv): 16 ns/iter
93
+ ```
94
+
95
+ A write-up on the [ architecture and internals of rkyv] is also available.
96
+
97
+ _ Discussions:
98
+ [ /r/rust (v0.1)] ( https://www.reddit.com/r/rust/comments/jss6h4/rkyv_a_zerocopy_deserialization_framework_for_rust/ ) ,
99
+ [ /r/rust (v0.2)] ( https://www.reddit.com/r/rust/comments/jx32e8/rkyv_02_and_bytecheck_validation_mutable_archives/ ) _
100
+
101
+ [ rkyv ] : https://github.com/djkoloski/rkyv
102
+ [ `rkyv_dyn` ] : https://docs.rs/rkyv_dyn
103
+ [ `bytecheck` ] : https://github.com/djkoloski/bytecheck
104
+ [ vlmutolo ] : https://www.reddit.com/r/rust/comments/jx32e8/rkyv_02_and_bytecheck_validation_mutable_archives/gcyfoqc
105
+ [ toy benchmark ] : https://git.sr.ht/~vlmutolo/rkyv-bench/tree/master/src/main.rs
106
+ [ architecture and internals of rkyv ] : https://davidkoloski.me/blog/rkyv-architecture/
107
+
70
108
### [ gfx-rs] and [ wgpu]
71
109
72
110
![ gfx-picture] ( wgpu-big-picture.svg )
0 commit comments