[][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.

Features

The following features can be enabled from Cargo.toml:

FeatureDescriptionExtra dependenciesDefault
with-bit-vec-0_6Enable support for the bit-vec crate.bit-vec 0.6no
with-chrono-0_4Enable support for the chrono crate.chrono 0.4no
with-eui48-0_4Enable support for the eui48 crate.eui48 0.4no
with-geo-types-0_4Enable support for the 0.4 version of the geo-types crate.geo-types 0.4no
with-geo-types-0_5Enable support for the 0.5 version of the geo-types crate.geo-types 0.5no
with-serde_json-1Enable support for the serde_json crate.serde_json 1.0no
with-uuid-0_8Enable support for the uuid crate.uuid 0.8no
with-time-0_2Enable support for the time crate.time 0.2no

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.

notifications

Asynchronous notifications.

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.

Notification

An asynchronous notification.

Notifications

Notifications from a PostgreSQL backend.

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.