tank-mysql 0.21.0

MySQL and MaridDB driver implementation for Tank: the Rust data layer
Documentation

tank-mysql

MySQL and MariaDB driver implementation for Tank: the Rust data layer.

Implements Tank’s Driver and related traits for MySQL and MariaDB, mapping Tank operations and queries into direct MySQL commands. It does not replace the main tank crate. You still need it to define entities, manage schemas, and build queries.

📘 https://tankhq.github.io/tank

🖥️ https://github.com/TankHQ/tank

📦 https://crates.io/crates/tank

Features

  • Async connection and execution via mysql_async
  • TLS support via native-tls
  • Support for MariaDB and MySQL

Install

cargo add tank
cargo add tank-mysql

Quick Start

use tank::{Connection, Driver, Executor};
use tank_mysql::MySQLDriver;

let driver = MySQLDriver::new();
let connection = driver
    .connect("mysql://user:pass@127.0.0.1:3306/db?require_ssl=true".into())
    .await?;

Running Tests

Tests need a MySQL instance. Provide a connection URL via TANK_MYSQL_TEST. If absent, a containerized MySQL will be launched automatically using testcontainers-modules.

  1. Ensure Docker is running (linux):
systemctl status docker
  1. Add your user to the docker group if needed (linux):
sudo usermod -aG docker $USER

[!CAUTION] Avoid aborting tests mid‑run (e.g. killing the process at a breakpoint). Containers might be left running and consume resources.

List containers:

docker ps

Stop container:

docker kill <container_id_or_name>