postgresql_archive 0.20.1

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
indicatif Enables tracing-indcatif support No
native-tls Enables native-tls support Yes
rustls Enables rustls support No

Configurations

Name Description Default?
theseus Enables theseus PostgreSQL binaries Yes
zonky Enables zonky PostgreSQL binaries No

Extractors

Name Description Default?
tar-gz Enables tar gz extractor Yes
tar-xz Enables tar xz extractor No
zip Enables zip extractor No

Hashers

Name Description Default?
md5 Enables md5 hashers No
sha1 Enables sha1 hashers No
sha2 Enables sha2 hashers Yes¹

¹ enabled by the theseus feature flag.

Repositories

Name Description Default?
github Enables github repository Yes¹
maven Enables maven repository No

¹ enabled by the theseus feature flag.

Supported platforms

postgresql_archive provides implementations for the following:

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.