[][src]Crate postgres

A synchronous client for the PostgreSQL database.

Example

use postgres::{Client, NoTls};

let mut client = Client::connect("host=localhost user=postgres", NoTls)?;

client.batch_execute("
    CREATE TABLE person (
        id      SERIAL PRIMARY KEY,
        name    TEXT NOT NULL,
        data    BYTEA
    )
")?;

let name = "Ferris";
let data = None::<&[u8]>;
client.execute(
    "INSERT INTO person (name, data) VALUES ($1, $2)",
    &[&name, &data],
)?;

for row in client.query("SELECT id, name, data FROM person", &[])? {
    let id: i32 = row.get(0);
    let name: &str = row.get(1);
    let data: Option<&[u8]> = row.get(2);

    println!("found person: {} {} {:?}", id, name, data);
}

Implementation

This crate is a lightweight wrapper over tokio-postgres. The postgres::Client is simply a wrapper around a tokio_postgres::Client along side a tokio Runtime. The client simply blocks on the futures provided by the async client.

SSL/TLS support

TLS support is implemented via external libraries. Client::connect and Config::connect take a TLS implementation as an argument. The NoTls type in this crate can be used when TLS is not required. Otherwise, the postgres-openssl and postgres-native-tls crates provide implementations backed by the openssl and native-tls crates, respectively.

Re-exports

pub use fallible_iterator;
pub use crate::config::Config;
pub use crate::error::Error;
pub use crate::row::Row;
pub use crate::row::SimpleQueryRow;
pub use crate::tls::NoTls;

Modules

binary_copy

Utilities for working with the PostgreSQL binary copy format.

config

Connection configuration.

error

Errors.

row

Rows.

tls

TLS support.

types

Types.

Structs

CancelToken

The capability to request cancellation of in-progress queries on a connection.

Client

A synchronous PostgreSQL client.

Column

Information about a column of a query.

CopyInWriter

The writer returned by the copy_in method.

CopyOutReader

The reader returned by the copy_out method.

Portal

A portal.

RowIter

The iterator returned by query_raw.

Socket

The standard stream type used by the crate.

Statement

A prepared statement.

Transaction

A representation of a PostgreSQL database transaction.

TransactionBuilder

A builder for database transactions.

Enums

IsolationLevel

The isolation level of a database transaction.

SimpleQueryMessage

Message returned by the SimpleQuery stream.

Traits

GenericClient

A trait allowing abstraction over connections and transactions.

ToStatement

A trait abstracting over prepared and unprepared statements.