- Notifications
You must be signed in to change notification settings - Fork5
A runtime-independent asynchronus PostgreSQL client
License
NotificationsYou must be signed in to change notification settings
Hexilee/async-postgres
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
This crate is a wrapper oftokio-postgres.
Runtime-independent, can be used on any async runtime.
Almost the same with tokio-postgres.
- TCP or UDS
use async_postgres::connect;use std::error::Error;use async_std::task::spawn;asyncfnplay() ->Result<(),Box<dynError>>{let url ="host=localhost user=postgres";let(client, conn) =connect(url.parse()?).await?;spawn(conn);let row = client.query_one("SELECT * FROM user WHERE id=$1",&[&0]).await?;let value:&str = row.get(0);println!("value: {}", value);Ok(())}
- TLS
use async_postgres::connect_tls;use native_tls::{Certificate,TlsConnector};use postgres_native_tls::MakeTlsConnector;use std::fs;use std::error::Error;use async_std::task::spawn;asyncfnplay() ->Result<(),Box<dynError>>{let cert = fs::read("database_cert.pem")?;let cert =Certificate::from_pem(&cert)?;let connector =TlsConnector::builder().add_root_certificate(cert).build()?;let connector =MakeTlsConnector::new(connector);let url ="host=localhost user=postgres sslmode=require";let(client, conn) =connect_tls(url.parse()?, connector).await?;spawn(conn);let row = client.query_one("SELECT * FROM user WHERE id=$1",&[&0]).await?;let value:&str = row.get(0);println!("value: {}", value);Ok(())}
Almost the same with tokio-postgres,you can see a live benchmarkhere.
Running tests needs a postgres server and environment variables:
TCP_URL="postgresql:///<db>?host=<tcp host>&port=<port>&user=<user>&password=<passwd>"UDS_URL="postgresql:///<db>?host=<postgres uds dir>&port=<port>&user=<user>&password=<passwd>"
About
A runtime-independent asynchronus PostgreSQL client
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.