Crates.io | mysql-client-bindings-rs |
lib.rs | mysql-client-bindings-rs |
version | 0.2.0 |
source | src |
created_at | 2021-05-01 23:33:31.736377 |
updated_at | 2021-05-03 00:36:16.084301 |
description | Auto-generated rust bindings for mysql/mariadb client headers |
homepage | https://github.com/chamoretto/mysql-client-bindings-rs |
repository | https://github.com/chamoretto/mysql-client-bindings-rs |
max_upload_size | |
id | 392055 |
size | 542,303 |
A more complete autogenerated Rust bindings for mysql/mariadb client library #include <mysql.h>
Works and tested only on UNIX systems.
Tested on Ubuntu 20.04 (and corresponding docker image), mysql:8.0.24
and mariadb:10
docker images.
Any further contributions are welcome in order to
mysql
- use mysql version of client bindings.
(default). Incompatible with mariadb
.
mariadb
- use mariadb version of client bindings.
(optional). Incompatible with mysql
.
fresh_bindings
- disable using of precompiled bindings from repository and enable bindgen
in order to generate your own live bindings. See package requirements at Build section below.
(optional). Requires bindgen
feature.
bindgen
- feature for conditional compilation, used only by fresh_bindings
feature.
Direct use of this feature will cause compile error.
(optional). Hidden, NOT for direct use. MUST be used on pair with fresh_bindings
.
NOTE: if you want to build & link it by yourself, enable feature fresh_bindings
,
see at section Features .
For build, you need to install corresponding client libraries,
depends on needed features (default path if you choose this crate as a dependency at your Cargo.toml
),
or you need only docker (path #2
)
if you want to build is locally by some reason or in order to reproduce these bindings.
In order to generate bindings on host you need to:
sudo apt-get update && sudo apt-get install llvm-dev libclang-dev clang
mysql
- sudo apt-get install libmysqlclient-dev
mariadb
- sudo apt-get install libmariadb3 libmariadb-dev
Then, if you want to just use this crate as a dependency, put in to your Cargo.toml
and select mysql
or mariadb
as a feature.
If you want to create standalone bindings:
mysql
- cargo build --release
(mysql
is default feature)mariadb
- cargo build --release --no-default-features --features mariadb
In order to generate standalone bindings through docker you need to:
Install docker
sudo apt-get update && sudo apt-get install docker.io
Adjust docker settings
2.1 Add your user in docker
group in order to use docker as non-root user - sudo usermod -aG docker $USER
2.2 If you want to continue using docker, add docker to systemctl in order to start it on the boot
sudo systemctl enable docker
Run build script - it will rebuild both kind of bindings for you and store them at ./src
directory.
bash ./build.sh
mysql
/mariadb
feature and do not pick fresh_bindings
, and you will use bindings from the repo.Ensure that your Cargo.toml
contains dependency with needed feature, and you have installed needed libraries,
listed at section Build:
# ...
[dependencies]
mysql-client-bindings-rs = { version = "0.2.0" }
Then add use
, it would be wise to use a shorter alias:
use mysql_client_bindings_rs as mysql; // alias
use mysql::{UDF_INIT, UDF_ARGS}; // whatever you need
Licensed under either of
at your option.
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.