Expand description
§PgWire Lite
A lightweight PostgreSQL wire protocol client library built on top of libpq.
This crate provides a simple, efficient interface for executing queries against PostgreSQL-compatible servers, including StackQL and similar services.
§Features
- Built on the robust libpq C library
- Simple API for query execution
- Comprehensive error handling with configurable verbosity
- Support for SSL/TLS connections
- Detailed query result information including notices
§Example
use pgwire_lite::PgwireLite;
fn main() -> Result<(), Box<dyn std::error::Error>> {
// Create a connection to PGWire protocol server (like a local StackQL server)
let conn = PgwireLite::new("localhost", 5444, false, "default")?;
// Execute a multi-line query using a raw string
let result = conn.query(r#"
SELECT region, instance_type, COUNT(*) as num_instances
FROM aws.ec2.instances
WHERE region = 'us-east-1'
GROUP BY instance_type
"#)?;
// Process the result
println!("Instance types in us-east-1:");
for row in &result.rows {
println!(
" {}: {} instances",
row.get("instance_type").unwrap(),
row.get("num_instances").unwrap()
);
}
Ok(())
}
Re-exports§
pub use connection::PgwireLite;
pub use connection::QueryResult;
pub use notices::Notice;
pub use notices::Verbosity;
pub use value::Value;