postgresql_archive 0.13.0

A library for downloading and extracting PostgreSQL archives
Documentation

PostgreSQL Archive

ci Documentation Code Coverage Benchmarks Latest version License Semantic Versioning

A configurable library for downloading and extracting PostgreSQL archives.

Examples

Asynchronous API

use postgresql_archive::{extract, get_archive, Result, VersionReq};
use postgresql_archive::configuration::theseus;

#[tokio::main]
async fn main() -> Result<()> {
    let url = theseus::URL;
    let (archive_version, archive) = get_archive(url, &VersionReq::STAR).await?;
    let out_dir = std::env::temp_dir();
    extract(url, &archive, &out_dir).await
}

Synchronous API

use postgresql_archive::configuration::theseus;
use postgresql_archive::{Result, VersionReq};
use postgresql_archive::blocking::{extract, get_archive};

fn main() -> Result<()> {
    let url = theseus::URL;
    let (archive_version, archive) = get_archive(url, &VersionReq::STAR)?;
    let out_dir = std::env::temp_dir();
    extract(url, &archive, &out_dir)
}

Feature flags

postgresql_archive uses [feature flags] to address compile time and binary size uses.

The following features are available:

Name Description Default?
blocking Enables the blocking API No
native-tls Enables native-tls support No
rustls-tls Enables rustls-tls support Yes

Supported platforms

postgresql_archive provides implementations for the following:

Safety

This crate uses #![forbid(unsafe_code)] to ensure everything is implemented in 100% safe Rust.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.