5个不稳定版本
0.3.1 | 2023年7月28日 |
---|---|
0.3.0 | 2023年3月5日 |
0.2.1 | 2023年2月21日 |
0.2.0 | 2023年2月20日 |
0.0.1 | 2023年2月17日 |
#8 in #trustfall
2,736 每月下载量
用于 13 个crate(通过 trustfall)
24KB
244 行
Trustfall — 查询(几乎)任何数据源的引擎
Trustfall 是一个查询引擎,可以查询任何类型的数据源,从API和数据库到磁盘上的任何类型的文件——甚至是AI模型。
在您的浏览器中尝试Trustfall
Trustfall沙盒支持运行针对公共数据源的查询,例如
- HackerNews REST API: https://play.predr.ag/hackernews
- 顶级Rust crate的rustdoc JSON: https://play.predr.ag/rustdoc
例如,此链接 展示了HackerNews查询的结果:“哪些GitHub或Twitter用户在评论有关OpenAI的故事?”
在游乐场中,Trustfall被配置为以WASM的形式在客户端运行,在浏览器内执行查询处理的各个方面(解析、编译和执行)。虽然这个演示突出了Trustfall嵌入目标应用的能力,但它当然也可以在更传统的客户端-服务器环境中使用。
10分钟技术讨论 + 演示
Trustfall在HYTRADBOI 2022会议上的“如何查询(几乎)一切”演讲中被提及。点击这里查看演讲。
演讲中的演示展示了跨API查询的执行:“哪些GitHub Actions被用于HackerNews首页上得分大于等于10的项目?”
该演示在HackerNews和GitHub API以及YAML格式的GitHub仓库工作流程文件上执行以下查询
{
HackerNewsTop(max: 200) {
... on HackerNewsStory {
hn_score: score @filter(op: ">=", value: ["$min_score"]) @output
link {
... on GitHubRepository {
repo_url: url @output
workflows {
workflow: name @output
workflow_path: path @output
jobs {
job: name @output
step {
... on GitHubActionsImportedStep {
step: name @output
action: uses @output
}
}
}
}
}
}
}
}
}
演示的运行说明以及源代码可以在demo-hytradboi
目录中找到:[链接](https://github.com/obi1kenobi/trustfall/blob/bd46fda813377ae65bac8b32b513ab7ce04c6eb4/trustfall_derive/demo-hytradboi)。
使用Trustfall查询现实世界数据的示例
- 包括查询语言概述和查询REST API的示例。[HackerNews API](https://github.com/obi1kenobi/trustfall/blob/bd46fda813377ae65bac8b32b513ab7ce04c6eb4/trustfall_derive/trustfall/examples/hackernews/)
- 包括如何查询RSS/Atom馈送的示例。[RSS/Atom feeds](https://github.com/obi1kenobi/trustfall/blob/bd46fda813377ae65bac8b32b513ab7ce04c6eb4/trustfall_derive/trustfall/examples/feeds/)
- 包括如何从航空天气报告中查询CSV数据的示例。[机场天气数据(METAR)](https://github.com/obi1kenobi/trustfall/blob/bd46fda813377ae65bac8b32b513ab7ce04c6eb4/trustfall_derive/trustfall/examples/weather)
Trustfall还驱动了语义版本控制检查器cargo-semver-checks
。关于Trustfall在该用例中扮演的角色,更多详细信息可在[这篇博客文章](https://predr.ag/blog/speeding-up-rust-semver-checking-by-over-2000x/)中找到。
使用Trustfall处理新的数据源
将新数据源连接起来的最简单方法是实现BasicAdapter
特质。
Python绑定可用,并且会在每次对引擎的更改时自动构建;最新版本可在此处下载:[链接](https://github.com/obi1kenobi/trustfall/releases)。Python入门指南即将推出([跟踪问题](https://github.com/obi1kenobi/trustfall/issues/16));在此期间,最佳资源是Python绑定的测试套件。
目录注册
trustfall
是一个门面crate。这是使用Trustfall的首选方式。trustfall_core
包含查询引擎的内部实现trustfall_derive
定义了简化数据源连接的宏pytrustfall
包含Trustfall的Python绑定trustfall_wasm
是Trustfall的WASM构建版本trustfall_filetests_macros
是一个过程宏,用于生成由文件定义的测试用例:它们确保在给定的测试函数输入一个文件指定的输入时,产生的输出与另一个文件的 内容等效。experiments
包含各种实验项目,例如 Trustfall web playground。
版权所有 2022-至今 Predrag Gruevski。
根据 Apache 许可证 2.0 版(“许可证”);除非遵守许可证,否则不得使用此文件。您可以在 https://apache.ac.cn/licenses/LICENSE-2.0 获取许可证副本。
除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”基础分发,不提供任何形式(明示或暗示)的保证或条件。有关许可证下权限和限制的特定语言,请参阅许可证。
当前日期由存储库中最新的提交时间戳确定。通过访问,并向此存储库贡献代码、评论或问题,您同意您所有的贡献可以在任何由项目的原始作者和/或未来的维护者选择的情况下使用、修改、复制和/或重新分发。
依赖项
~295–750KB
~18K SLoC