How to Connect to PostgreSQL from Rust (sqlx, diesel)

Connect to PostgreSQL in Rust using sqlx or diesel by adding dependencies and initializing a connection pool with your database URL.

Use sqlx for compile-time checked queries or diesel for a type-safe ORM to connect to PostgreSQL from Rust.

// Cargo.toml
[dependencies]
sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "postgres"] }
tokio = { version = "1", features = ["full"] }

// src/main.rs
use sqlx::postgres::{PgPoolOptions, PgPool};

#[tokio::main]
async fn main() {
    let db_url = std::env::var("DATABASE_URL").unwrap_or_else(|_| "postgres://postgres:password@localhost".to_string());
    let pool = PgPoolOptions::new()
        .max_connections(5)
        .connect(&db_url)
        .await
        .expect("Failed to connect to database");

    let row = sqlx::query_scalar("SELECT 'hello'")
        .fetch_one(&pool)
        .await
        .expect("Query failed");
    println!("{row}");
}