Autogenerated Rust bindings for libmysql-client (#include <mysql.h>)
For this crate to build, libmysqlclient must be installed on your system
(brew install mysql on macOS, apt-get install libmysqlclient-dev on Ubuntu,
included with the server distribution on Windows). Additionally, either
pkg-config or mysql_config must be present and able to successfully locate
libmysqlclient.
The build script of the crate will attempt to find the lib path of libmysql-client using the following methods:
- First, it will attempt to use pkg-config to locate it. All the config options,
such as
PKG_CONFIG_ALLOW_CROSS,PKG_CONFIG_ALL_STATICetc., of the crate pkg-config apply. - MSVC ABI builds will then check for a Vcpkg
installation using the vcpkg cargo build helper.
Set the
VCPKG_ROOTenvironment variable to point to your Vcpkg installation and runvcpkg install libmysql:x64-windows-static-mdto install the required libraries. You need to set theMYSQLCLIENT_VERSIONto specify the installed version in this case. - The library name
mysqlclientis used unlessMYSQLCLIENT_LIBNAMEenvironment variable is specified. - If the library cannot be found by using the steps above the build script will
check the
MYSQLCLIENT_LIB_DIRandMYSQLCLIENT_VERSIONenvironment variables. - If the library cannot be found using
pkg-config, it will invoke the commandmysql_config --variable=pkglibdir
The crate will try to use pregenerated bindings for a variety of libmysqlclient versions and supported operating systems.
The buildtime_bindgen feature allows you to generate bindings at build time matching your locally installed libmysqlclient version. It uses pkg-config, vcpkg, mysql_config or the MYSQLCLIENT_INCLUDE_DIR variable to determine the location of your mysql.h header.
Additional bindgen configurations can be provided by setting the BINDGEN_EXTRA_CLANG_ARGS variable.
All MYSQLCLIENT_* environment can be post-fixed by a target to allow setting different values for different targets. For example MYSQLCLIENT_LIB_DIR_x86_64_unknown_linux_gnu would set the MYSQLCLIENT_LIB_DIR variable for the x86_64-unknown-linux-gnu target. The MYSQLCLIENT_LIB_DIR variable takes precedence before the target specific variants.
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
The mysqlclient-src crate is licensed under GPL-2.0
to match the license of the packed mysql source code.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.