我最近一直在用Rust解析大量的json,这里有一些细节我想和大家分享。
unions
相比,无标签的unions
解析起来非常慢。如果你关心性能,最好是有一个可以区分unions
变量的属性。&str
字段的数据结构来避免对字符串的分配。serde_json::Number
可以避免转换为数字格式,直到你真正想要花费处理时间。union
来区分json属性值,你不需要使用枚举变量的名称,你可以使用: #[serde(tag="animal_type")]
enum Animal { #[serde(alias="crab")]
Crab(MyCrabStruct) #[serde(alias="gopher")]
Gopher(MyGopherStruct)
}
该帖子下还有其他网友分享的一些细节。
Reddit: https://libreddit.spike.codes/r/rust/comments/w3q1oq/things_i_wish_i_had_known_about_serde_json/
LibAFL为你提供了许多现成的模糊器的优点,同时可以完全定制。目前的一些亮点功能包括:
target
:我们支持纯二进制模式,如Frida-Mode,以及基于资源的仪器化的多个编译通道。当然,添加自定义的仪器化后端也很容易。Github: https://github.com/AFLplusplus/LibAFL/releases/tag/0.8.0
From 日报小组 Cupnfish
社区学习交流平台订阅: