[][src]Crate dhb_postgres_heroku


Given a DATABASE_URL, it should be dead simple to connect to a Heroku postgres database.

This crate makes it dead simple:

You pass a DATABASE_URL to the postgres_client function and get a working client back, as in

let mut client = get_client(&database_url);

If you want a connection pool, you'll also want to pass in a maximum number of connections.

let max_size = 20;
let mut pool = get_pool(&database_url, max_size);

The reason I found the work to create this crate useful is that connecting to Heroku postgres has 2 quirks.

  1. On the one hand, it requires that we have a secure connection.
  2. On the other hand, it uses self-verified certificates. So we have to enable ssl, but turn off verification.


pub use postgres;
pub use r2d2;
pub use r2d2_postgres;



A synchronous PostgreSQL client.



Get a working client from a postgres url.


Get a heroku-capable r2d2 connection pool from a postgres url and a maximum size.


Try out a client by running through a set of postgres commands to create a table, insert a row, read the row, and drop the table.

Type Definitions