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
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:
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
Ensure that your Cargo.toml
contains dependency with needed feature, and you have installed needed libraries,
listed at section Build:
```toml
[dependencies] mysql-client-bindings-rs = { version = "0.1.0", git = "https://github.com/chamoretto/mysql-client-bindings-rs" } ```
Then add use
, it would be wise to use a shorter alias:
rust
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.