前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Rust 日报】2022-07-21 关于serde_json我希望大家都能知道这些事

【Rust 日报】2022-07-21 关于serde_json我希望大家都能知道这些事

作者头像
MikeLoveRust
发布2022-11-28 11:05:56
4140
发布2022-11-28 11:05:56
举报

关于serde_json我希望大家都能知道这些事

我最近一直在用Rust解析大量的json,这里有一些细节我想和大家分享。

  • 与有标签的unions相比,无标签的unions解析起来非常慢。如果你关心性能,最好是有一个可以区分unions变量的属性。
  • 你可以通过解析到一个使用&str字段的数据结构来避免对字符串的分配。
  • 有一种类型serde_json::Number可以避免转换为数字格式,直到你真正想要花费处理时间。
  • 如果你使用标签union来区分json属性值,你不需要使用枚举变量的名称,你可以使用:
代码语言:javascript
复制
  #[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 一个模糊器发布0.8.0版本

LibAFL为你提供了许多现成的模糊器的优点,同时可以完全定制。目前的一些亮点功能包括:

  • 快速:我们在编译时做了所有能做的事情,使运行时的开销最小。用户在手机上的frida-mode中达到12万次/秒的执行率(使用所有内核)。
  • 可扩展性:低水平消息传递,简称LLMP,允许LibAFL在核心上几乎线性地扩展,并通过TCP传输到多台机器。
  • 可适应性强:你可以替换LibAFL的每个部分。例如,BytesInput只是一个潜在的表单输入:可以随意添加一个基于AST的输入,用于结构化的模糊测试,以及更多。
  • 多平台:LibAFL被证实可以在Windows、MacOS、Linux和Android的x86_64和arch64上工作。LibAFL可以在no_std模式下构建,将LibAFL注入到不知名的目标中,如嵌入式设备和管理程序。
  • 你自己的target:我们支持纯二进制模式,如Frida-Mode,以及基于资源的仪器化的多个编译通道。当然,添加自定义的仪器化后端也很容易。

Github: https://github.com/AFLplusplus/LibAFL/releases/tag/0.8.0

From 日报小组 Cupnfish

社区学习交流平台订阅:

  • Rust.cc 论坛: 支持 rss
  • 微信公众号:Rust 语言中文社区
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-07-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Rust语言学习交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于serde_json我希望大家都能知道这些事
  • LibAFL 一个模糊器发布0.8.0版本
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档