Repolode
01mf02

01mf02/jaq

用 Rust 编写的 jq 克隆版,注重正确性、速度与实现简洁,可作为命令行工具或 Rust 库使用。

可替代:jq

Star
3,809
Fork
126
未关闭 Issue
24
最近提交
昨天

这是什么?

jaq 是用 Rust 编写的 jq 克隆版,目标是在命令行中直接替代 jq,同时提供更可预测的 jq 语言实现。它额外支持 YAML、CBOR、TOML 和 XML 等 jq 不提供的数据格式。

项目分为两部分:命令行程序 jaq,以及 jaq-core 库。后者可在 Rust 程序中编译并运行 jq 过滤器,支持多线程安全使用,并通过 ValT trait 处理 JSON 之外的任意数据类型。

项目启动速度较快,适合批量处理大量小文件,并附有与 jq、gojq 的性能对比。核心代码经过安全审计,测试套件包含 500 多个测试。

核心功能

  • 01可直接替代 jq 的命令行工具
  • 02支持 YAML、CBOR、TOML、XML 等数据格式
  • 03提供 jaq-core 库,可在 Rust 程序中运行 jq 过滤器且支持多线程
  • 04通过 ValT trait 扩展到自定义数据类型
  • 05启动速度快,并提供与 jq、gojq 的性能对比
  • 06核心经过安全审计,测试套件超过 500 个测试

适用场景

  • 替换 shell 脚本和流水线中的 jq,处理 JSON 数据
  • 批量处理大量小文件,减少 jq 启动开销
  • 在 Rust 应用中嵌入 jq 风格的查询能力

快速上手

  1. 1

    使用 Cargo 从 crates.io 安装 jaq

    cargo install --locked jaq
  2. 2

    在 macOS 或 Linux 上使用 Homebrew 安装 jaq

    brew install jaq
  3. 3

    或从发布页面下载适合你平台的二进制文件

使用前须知

  • jaq 不对资源耗尽采取防护措施,可能无限制地占用时间、内存或栈空间。
  • 部分 jq 行为与 jq 有意不同,因此并非在所有情况下都完全兼容。

标签

常见问题

jaq 是什么?
用 Rust 编写的 jq 克隆版,注重正确性、速度与实现简洁,可作为命令行工具或 Rust 库使用。 jaq 是用 Rust 编写的 jq 克隆版,目标是在命令行中直接替代 jq,同时提供更可预测的 jq 语言实现。它额外支持 YAML、CBOR、TOML 和 XML 等 jq 不提供的数据格式。
jaq 可以免费使用吗?用的什么许可证?
jaq 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
jaq 还在维护吗?
活跃维护中。jaq 最近一次提交是在 2026年10月21日。
jaq 适合用来做什么?
替换 shell 脚本和流水线中的 jq,处理 JSON 数据 批量处理大量小文件,减少 jq 启动开销 在 Rust 应用中嵌入 jq 风格的查询能力
jaq 怎么安装和运行?
使用 Cargo 从 crates.io 安装 jaq: cargo install --locked jaq 在 macOS 或 Linux 上使用 Homebrew 安装 jaq: brew install jaq 或从发布页面下载适合你平台的二进制文件
在哪里获取 jaq?
源代码和安装说明在 GitHub 上:https://github.com/01mf02/jaq

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目