4个版本
新 0.1.2 | 2024年8月23日 |
---|---|
0.1.1 | 2024年5月31日 |
0.1.0 | 2024年5月17日 |
0.0.1 | 2024年5月17日 |
2241在数据库接口中
每月837次下载
在3个crate中使用了(b2 直接)
32MB
550K SLoC
mysqlclient-sys
为libmysql-client自动生成的Rust绑定(#include <mysql.h>
)
构建
为了构建此crate,您的系统上必须安装libmysqlclient(在macOS上使用brew install mysql
,在Ubuntu上使用apt-get install libmysqlclient-dev
,在Windows上包含在服务器分发中)。此外,必须存在pkg-config
或mysql_config
,并且能够成功定位libmysqlclient
。
crate的构建脚本将尝试使用以下方法找到libmysql-client的库路径
- 首先,它将尝试使用pkg-config来定位它。crate的pkg-config的所有配置选项,例如
PKG_CONFIG_ALLOW_CROSS
、PKG_CONFIG_ALL_STATIC
等,都适用。 - MSVC ABI构建将检查Vcpkg的安装,使用vcpkg cargo build helper。将环境变量
VCPKG_ROOT
设置为指向您的Vcpkg安装,并运行vcpkg install libmysql:x64-windows-static-md
来安装所需的库。在这种情况下,您需要将MYSQLCLIENT_VERSION
设置为指定安装的版本。 - 除非指定了
MYSQLCLIENT_LIBNAME
环境变量,否则将使用库名称mysqlclient
。 - 如果使用上述步骤无法找到库,则构建脚本将检查环境变量
MYSQLCLIENT_LIB_DIR
和MYSQLCLIENT_VERSION
。 - 如果使用
pkg-config
无法找到库,它将调用命令mysql_config --variable=pkglibdir
crate将尝试使用预生成的绑定来支持各种libmysqlclient版本和操作系统。
buildtime_bindgen
功能允许您在构建时生成与本地安装的libmysqlclient版本匹配的绑定。它使用pkg-config
、vcpkg
、mysql_config
或MYSQLCLIENT_INCLUDE_DIR
变量来确定您的mysql.h
头文件的路径。可以通过设置BINDGEN_EXTRA_CLANG_ARGS
变量来提供额外的bindgen配置。
所有MYSQLCLIENT_*
环境变量都可以通过目标后缀来设置,以便为不同的目标设置不同的值。例如,MYSQLCLIENT_LIB_DIR_x86_64_unknown_linux_gnu
将设置MYSQLCLIENT_LIB_DIR
变量以适用于x86_64-unknown-linux-gnu
目标。在目标特定变量之前,MYSQLCLIENT_LIB_DIR
变量具有优先级。
许可证
许可协议为以下之一
- Apache License, Version 2.0, (LICENSE-APACHE或http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT或http://opensource.org/licenses/MIT)
根据您的选择。
mysqlclient-src
crate的许可证为GPL-2.0,以与打包的mysql源代码的许可证相匹配。
贡献
除非您明确表示,否则任何根据Apache-2.0许可证定义的,有意提交以包含在您的工作中的贡献,都将如上所述双许可,没有任何附加条款或条件。
依赖关系
~31MB
~763K SLoC