Expand description
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
:
Feature | Description | Extra dependencies | Default |
---|---|---|---|
with-bit-vec-0_6 | Enable support for the bit-vec crate. | bit-vec 0.6 | no |
with-chrono-0_4 | Enable support for the chrono crate. | chrono 0.4 | no |
with-eui48-0_4 | Enable support for the 0.4 version of the eui48 crate. | eui48 0.4 | no |
with-eui48-1 | Enable support for the 1.0 version of the eui48 crate. | eui48 1.0 | no |
with-geo-types-0_6 | Enable support for the 0.6 version of the geo-types crate. | geo-types 0.6 | no |
with-geo-types-0_7 | Enable support for the 0.7 version of the geo-types crate. | geo-types 0.7 | no |
with-serde_json-1 | Enable support for the serde_json crate. | serde_json 1.0 | no |
with-uuid-0_8 | Enable support for the uuid crate. | uuid 0.8 | no |
with-uuid-1 | Enable support for the uuid crate. | uuid 1.0 | no |
with-time-0_2 | Enable support for the 0.2 version of the time crate. | time 0.2 | no |
with-time-0_3 | Enable support for the 0.3 version of the time crate. | time 0.3 | no |
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
Utilities for working with the PostgreSQL binary copy format.
Connection configuration.
Errors.
Asynchronous notifications.
Rows.
TLS support.
Types.
Structs
The capability to request cancellation of in-progress queries on a connection.
A synchronous PostgreSQL client.
Information about a column of a query.
The writer returned by the copy_in
method.
The reader returned by the copy_out
method.
An asynchronous notification.
Notifications from a PostgreSQL backend.
A portal.
The iterator returned by query_raw
.
The standard stream type used by the crate.
A prepared statement.
A representation of a PostgreSQL database transaction.
A builder for database transactions.
Enums
The isolation level of a database transaction.
Message returned by the SimpleQuery
stream.
Traits
A trait allowing abstraction over connections and transactions.
A trait abstracting over prepared and unprepared statements.