tank-postgres

Crates.iotank-postgres
lib.rstank-postgres
version0.16.0
created_at2025-10-09 19:45:44.887949+00
updated_at2026-01-20 23:42:04.866092+00
descriptionPostgres driver implementation for Tank: the Rust data layer
homepage
repositoryhttps://github.com/TankHQ/tank
max_upload_size
id1876124
size156,885
BarsDev (barsdeveloper)

documentation

README

Tank: Table Abstraction & Navigation Kit logo featuring a green tank with a gear background and stacked database cylinders

tank-postgres

Postgres driver implementation for Tank: the Rust data layer.

Implements Tank’s Driver and related traits for Postgres, mapping Tank operations and queries into direct Postgres commands. It does not replace the main tank crate. you still use 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

Install

cargo add tank
cargo add tank-postgres

Quick Start

use tank::{Connection, Driver, Executor};
use tank_postgres::PostgresDriver;

let driver = PostgresDriver::new();
let connection = driver
    .connect("postgres://user:pass@hostname:5432/database?sslmode=require&sslrootcert=/path/to/root.crt&sslcert=/path/to/client.crt&sslkey=/path/to/client.key".into())
    .await?;

Running Tests

Tests need a Postgres instance. Provide a connection URL via TANK_POSTGRES_TEST. If absent, a containerized Postgres 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>
Commit count: 401

cargo fmt