4个版本 (破坏性更新)

0.8.0 2023年3月12日
0.7.0 2022年7月8日
0.6.0 2021年3月29日
0.5.0 2021年3月27日

#2483 in 数据库接口

Download history 1168/week @ 2024-03-25 1038/week @ 2024-04-01 1203/week @ 2024-04-08 1202/week @ 2024-04-15 1017/week @ 2024-04-22 1062/week @ 2024-04-29 1175/week @ 2024-05-06 870/week @ 2024-05-13 1054/week @ 2024-05-20 717/week @ 2024-05-27 857/week @ 2024-06-03 1032/week @ 2024-06-10 508/week @ 2024-06-17 762/week @ 2024-06-24 778/week @ 2024-07-01 832/week @ 2024-07-08

每月下载量 2,900
4 个crates中使用 (通过 libpq)

MIT/Apache

11KB
177

pq-sys

为libpq自动生成的Rust绑定

构建

此存储库包含直接、一对一映射到libpq-fe.hpostgres_ext.h中提供的C函数。此库期望系统上已安装libpq。

crates的构建脚本将尝试使用以下方法找到libpq的库路径

  • 首先,如果环境变量PQ_LIB_DIR已设置,它将使用其值
  • 如果环境变量未设置,它将尝试使用pkg-config查找它。所有配置选项,如PKG_CONFIG_ALLOW_CROSSPKG_CONFIG_ALL_STATIC等,都适用于该crates的pkg-config
  • 对于MSVC ABI构建,构建脚本将尝试使用从vcpkg安装的库,如果有可用的。您可能需要设置VCPKG_ROOT(或运行vcpkg integrate install)并运行vcpkg install libpq:x64-windows
  • 如果它仍然找不到库,它将调用Postgres命令pg_config --libdir

构建脚本指示Cargo如果设置了环境变量PQ_LIB_STATIC,则静态链接库。如果针对musl目标,这可能很有用。如果使用pkg-config,它将应用其配置选项。

常见问题解答

我在macOS上看到dyld: Symbol not found __cg_jpeg_resync_to_restart

这是由于pg_config --libdir的输出是一个包含与系统libjpeg不同的libjpeg.dylib的目录造成的。这通常是由于通过homebrew安装postgres或使用postgresapp.com造成的。

如果您是通过Homebrew安装的,除非您提供了features = ["pkg-config"],否则您不应该看到这个问题。您可以通过导出PQ_LIB_DIR="$(brew --prefix postgres)/lib"来解决此问题。

如果您使用postgresapp.com安装了postgresql,您将无法使用cargo runcargo test来运行您的二进制文件。您可以手动通过cargo build编译二进制文件,然后运行/target/debug/yourapp。您还可以手动创建一个只包含对libpq.dylib的符号链接的目录,然后导出PQ_LIB_DIR到该目录。建议您不要使用postgresapp.com。

许可协议

在以下任一协议下获得许可

由您选择。

贡献

除非您明确声明,否则根据Apache-2.0许可协议定义的,您提交的任何旨在包含在作品中的贡献,将按上述方式双许可,不附加任何额外条款或条件。

依赖关系

~0–1.9MB
~37K SLoC