5 个版本

使用旧 Rust 2015

0.2.2 2019 年 6 月 9 日
0.2.1 2019 年 6 月 2 日
0.2.0 2019 年 2 月 19 日
0.1.1 2019 年 1 月 14 日
0.1.0 2019 年 1 月 13 日

#1300编码

Download history 92/week @ 2024-04-07 120/week @ 2024-04-14 115/week @ 2024-04-21 107/week @ 2024-04-28 91/week @ 2024-05-05 108/week @ 2024-05-12 121/week @ 2024-05-19 99/week @ 2024-05-26 138/week @ 2024-06-02 96/week @ 2024-06-09 414/week @ 2024-06-16 202/week @ 2024-06-23 120/week @ 2024-06-30 116/week @ 2024-07-07 147/week @ 2024-07-14 82/week @ 2024-07-21

每月 478 次下载
用于 10 个包 (3 个直接)

Apache-2.0/MIT

750KB
21K SLoC

C 17K SLoC // 0.1% comments Rust 2K SLoC // 0.0% comments Happy 882 SLoC jq 301 SLoC // 0.1% comments Liquid 237 SLoC // 0.0% comments M4 178 SLoC // 0.4% comments Automake 141 SLoC // 0.1% comments Shell 70 SLoC // 0.2% comments RPM Specfile 52 SLoC // 0.1% comments JavaScript 50 SLoC // 0.0% comments Python 20 SLoC // 0.1% comments

包含 (神秘的 autoconf 代码, 10KB) modules/jq/configure.ac

jq-sys

crates.io crates.io docs.rs

jq 1.6 生成绑定

使用 bindgen 生成绑定,该工具可通过 cargo install 获取。

示例

$ git submodule update --init
$ bindgen modules/jq/src/jq.h -o src/bindings.rs

构建

使用捆绑功能

当启用 bundled 功能时,它将添加对 jq-src crate 的依赖,这将尝试构建并链接到库。这可能适用于简单情况,但对于任何复杂情况(例如交叉构建),您将需要自己安装或构建 libjq

注意:当使用 bundled 功能时,libjq 由 jq-src crate 提供,这需要 gccautoreconfmake 等工具在您的 PATH 中以构建。

不使用捆绑功能

当不使用 bundled 功能时,您必须自己编译 libjq,或使用系统包管理器提供的库。

例如,在 debian 系统 上,您可以安装 libjq1 libjq-dev libonig4 libonig-dev

以下 env 变量可以用于向构建脚本提供提示。

名称 用途 注释
JQ_LIB_DIR 库位置的路径。
JQ_LIB_STATIC 使用静态链接而不是共享链接。
JQ_NO_ONIG 禁用对 oniguruma 的链接以支持正则表达式。
ONIG_LIB_DIR 库位置的路径。 默认为 JQ_LIB_DIR,如果设置了 JQ_NO_ONIG,则忽略。
ONIG_LIB_STATIC 使用静态链接而不是共享链接。 如果设置了 JQ_NO_ONIG,则忽略。

注意,如果您正在使用 pkg-config 功能,并且它无法找到 libjq,可以通过设置 JQ_LIB_DIR 来显式指定位置。

这可能是在 debian 基础的发行版(包括 ubuntu)上所需的,因为在编写本文档时,jq 的发行版包不包括 .pc 文件,这些文件是 pkg-config 定位文件所需的。

变更日志

0.2.2 (2019-06-09)

0.2.1 (2019-06-01)

  • 使用 bindgen v0.49.2 重新生成了 src/bindings.rs
  • 将依赖项 jq-src 更新到 v0.3。
  • 更新了 build.rs 以避免在使用 bundled 功能时频繁重新从源构建 jq(#2)。

0.2.0 (2019-02-18)

新增

  • 添加了新的环境变量,允许自定义 libjqlibonig 的链接。
  • 添加了 pkg-config 功能(默认开启),以便在环境变量未设置时帮助配置链接。

破坏性变更

  • bundled 功能不再默认启用。

0.1.1 (2019-01-13)

添加了 bundled 功能(默认开启),允许依赖项选择是否使用 jq-src 包进行链接。

0.1.0 (2019-01-13)

初始版本。

依赖