#jq #json #build #link #compile #source #api

build jq-src

从源代码编译和链接 libjq 的 API

5 个版本 (3 个重大更改)

使用旧的 Rust 2015

0.4.1 2019年6月23日
0.4.0 2019年6月9日
0.3.1 2019年6月2日
0.2.0 2019年2月18日
0.1.0 2019年1月13日

#407构建实用工具

Download history 61/week @ 2024-03-14 72/week @ 2024-03-21 82/week @ 2024-03-28 69/week @ 2024-04-04 71/week @ 2024-04-11 76/week @ 2024-04-18 69/week @ 2024-04-25 56/week @ 2024-05-02 57/week @ 2024-05-09 67/week @ 2024-05-16 52/week @ 2024-05-23 87/week @ 2024-05-30 77/week @ 2024-06-06 278/week @ 2024-06-13 185/week @ 2024-06-20 155/week @ 2024-06-27

每月716 次下载
6 个 crate 中使用 (通过 jq-sys)

Apache-2.0/MIT

3MB
113K SLoC

C 110K SLoC // 0.0% comments Happy 882 SLoC Python 753 SLoC // 0.1% comments jq 301 SLoC // 0.1% comments Automake 259 SLoC // 0.1% comments Liquid 237 SLoC // 0.0% comments M4 178 SLoC // 0.4% comments Shell 94 SLoC // 0.2% comments Rust 85 SLoC // 0.2% comments RPM Specfile 52 SLoC // 0.1% comments JavaScript 50 SLoC // 0.0% comments C++ 12 SLoC // 0.6% comments Batch 6 SLoC

包含 (晦涩的 autoconf 代码, 10KB) modules/jq/configure.ac, (晦涩的 autoconf 代码, 3KB) configure.ac

jq-src

crates.io crates.io docs.rs

此 rust crate 提供了一个 API,用于编译由 jq 1.6 版本发布的 libjq。其他版本的 jq 可能也可以工作,但尚未经过测试。

此 crate 的主要消费者是 jq-sys,当启用 bundled 功能时,它依赖于此 crate。

设置 JQ_NO_STATIC 将构建共享库而不是静态库(默认)。这可能是不可取的,因为您将不得不特别确保保留 libjq 的构建结果并将它们安装到您的系统上,以便在运行时找到它们。尽管如此,变量仍然存在,如果您觉得需要设置它。

根据 jq 的说明,该库使用内置的 oniguruma 库进行正则表达式支持。

为了成功编译,您必须在您的 PATH 中有 autotools(autoreconfmake 等)和 gcc 工具链。

请注意,jq 源代码作为 git 子模块提供。当从 crates.io 安装此 crate 或使用 git 依赖项时,将自动获取这些子模块,但是如果您想在本地修改此 crate 或将其列为路径依赖项,您必须自己获取子模块,例如

$ git submodule update --init --recursive

如果构建此 crate 失败是因为缺少文件,那么很可能是子模块未初始化。

变更日志

v0.4.1 (2019-06-22)

  • 修复了在某些系统上链接时依赖的 crate 无法构建的问题 (#3).

v0.4.0 (2019-06-09)

  • 升级到 autotools 0.2,更新用法以兼容新的公共API。
  • (希望)修复了autotools构建可能间歇性失败的问题(#1)。

v0.3.1(2019-06-01)

  • 降级到 autotools 0.1(较新版本会导致jq构建中断)。

v0.3.0(2019-06-01)

  • 移除了 Artifacts::print_cargo_metadata(),该功能与 Artifacts::print_link_info() 大部分重复(不知为何我写了两次这个方法)。
  • 添加了一些文档。

v0.2.0(2019-02-18)

  • 不再在 build.rs 中构建/链接 - 添加包装API,以便 jq-sys 可以自行执行。
  • 尝试通过在每次运行前清理jq源目录来提高构建脚本的可靠性(如果存在的话)。

v0.1.0(2019-01-12)

初始发布。

依赖