9 个版本
0.1.0-alpha.2 | 2023年4月9日 |
---|---|
0.0.7 | 2021年3月4日 |
0.0.6 | 2021年2月27日 |
0.0.2 | 2021年1月24日 |
#2024 in 解析器实现
每月42次下载
195KB
3.5K SLoC
Datafu
Datafu 是一个用于从配置对象和其他任意对象图中提取数据的 Rust 库,使用自定义查询语言。作为一个查询语言,它继承了 XPath 和 jq 的某些特性,但在范围上有显著的不同。作为一个库,它试图保持事情相对简单。
与 XPath 的比较
XPath 大概是一个标准。虽然它主要是为 XML 设计的,但也有 XPath 实现可以与 JSON 和其他格式一起工作。它也几乎是类型感知的,并且可以在不使用用户回调的情况下执行操作,如数值范围检查。
与 XPath 不同,Datafu 并不是主要用于 XML,而是一个更通用的工具,也可以用于 XML。它甚至支持循环图,例如在 Lua 表中找到的循环图。
与 jq 的比较
jq 首先是 CLI 工具。它也是图灵完备的。如果你不感兴趣于不可判定的模式,并且前面的 README 部分没有说服你使用 XPath,那么 Datafu 应该是你的选择。
与 Serde 的比较
截至 Datafu 0.1.0,Datafu 由 Serde 驱动。这使得我们可以依赖 Serde 进行反序列化,同时利用 Datafu 的效率。请注意,然而,Datafu 是有状态的。
依赖关系
~4.5–6MB
~114K SLoC