23个版本 (7个重大更新)

0.7.1 2023年11月17日
0.6.0 2023年7月25日
0.3.3 2023年3月23日
0.1.1 2022年12月6日
0.0.7 2022年11月10日

#1637数据库接口

Download history 547/week @ 2024-03-29 464/week @ 2024-04-05 839/week @ 2024-04-12 666/week @ 2024-04-19 455/week @ 2024-04-26 468/week @ 2024-05-03 568/week @ 2024-05-10 606/week @ 2024-05-17 628/week @ 2024-05-24 520/week @ 2024-05-31 548/week @ 2024-06-07 683/week @ 2024-06-14 637/week @ 2024-06-21 636/week @ 2024-06-28 564/week @ 2024-07-05 845/week @ 2024-07-12

2,786 每月下载量
14 个crate中使用 (2 个直接使用)

Apache-2.0

4MB
136K SLoC

Rusty Object Notation 118K SLoC // 0.0% comments Rust 17K SLoC // 0.1% comments GraphQL 1.5K SLoC // 0.0% comments

Trustfall — 查询几乎所有事物的引擎

Trustfall是一种查询引擎,可以查询任何类型的数据源,从API和数据库到磁盘上的任何文件,甚至是AI模型。

在浏览器中尝试Trustfall

Trustfall游乐场支持对以下公共数据源进行查询:

例如,此链接 显示了HackerNews查询“哪些GitHub或Twitter用户在评论关于OpenAI的故事?”的结果

在游乐场中,Trustfall配置为作为WASM在客户端运行,在浏览器中执行查询处理的各个方面(解析、编译和执行)。虽然这个演示突出了Trustfall嵌入到目标应用中的能力,但它当然也可以在更传统的客户端-服务器环境中使用。

10分钟技术讲座 + 演示

Trustfall 在《"如何查询(几乎)所有内容"》演讲中有所展示,该演讲在HYTRADBOI 2022会议上进行。

Terminal recording of running cargo run --release -- query example_queries/actions_in_repos_with_min_10_hn_pts.ron in the demo-hytradboi demo project. The system returns the first 20 results of the query in 6.36 seconds."

演讲中的演示展示了跨API查询的执行:在 HackerNews 前页的评分 >=10 的项目中使用哪些 GitHub Actions?

该演示在 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 目录中:链接

使用Trustfall查询现实世界数据的示例

Trustfall 还为cargo-semver-checks语义版本控制检查器提供动力。关于 Trustfall 在此用例中发挥作用的更多细节,请参阅这篇博客文章

在新的数据源上使用 Trustfall

通过实现BasicAdapter特质,可以轻松地将新数据源连接起来。

Python 绑定可用,并在对引擎的每次更改时自动构建;最新版本可在此处下载。Python 入门指南即将推出(跟踪问题);同时,最佳资源是 Python 绑定的测试套件

目录注册

版权所有 2022-至今 Predrag Gruevski。

本文件遵循Apache License 2.0(以下简称“许可证”);除非符合许可证规定,否则不得使用此文件。您可以在以下网址获取许可证副本:http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”基础分发,不提供任何形式的保证或条件,无论是明示的还是暗示的。请参阅许可证以了解具体规定许可和限制的具体语言。

当前日期由仓库中最新的提交时间戳确定。通过访问并向此仓库贡献代码、评论或问题,您同意您的所有贡献可以在原作者和/或未来维护者选择的情况下使用、修改、复制和/或重新分发。

依赖项

~6–8MB
~150K SLoC