postgresql_archive 0.9.4

A library for downloading and extracting PostgreSQL archives
Documentation

PostgreSQL Archive

ci Documentation Code Coverage Benchmarks Latest version License Semantic Versioning

A library for downloading and extracting PostgreSQL archives from theseus-rs/postgresql-binaries.

Examples

Asynchronous API

use postgresql_archive::{extract, get_archive, Result, LATEST};

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

Synchronous API

use postgresql_archive::{Result, LATEST};
use postgresql_archive::blocking::{extract, get_archive};

fn main() -> Result<()> {
    let (archive_version, archive) = get_archive(&LATEST)?;
    let out_dir = std::env::temp_dir();
    extract(&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 supports all platforms provided by theseus-rs/postgresql-binaries.

Currently supported platforms are:

OS Target
Linux aarch64-unknown-linux-gnu
Linux aarch64-unknown-linux-musl
Linux arm-unknown-linux-gnueabi
Linux arm-unknown-linux-gnueabihf
Linux arm-unknown-linux-musleabi
Linux arm-unknown-linux-musleabihf
Linux armv5te-unknown-linux-gnueabi
Linux armv7-unknown-linux-gnueabihf
Linux armv7-unknown-linux-musleabihf
Linux i586-unknown-linux-gnu
Linux i586-unknown-linux-musl
Linux i686-unknown-linux-gnu
Linux i686-unknown-linux-musl
Linux mips64-unknown-linux-gnuabi64
Linux powerpc64le-unknown-linux-gnu
Linux powerpc64le-unknown-linux-musl
Linux s390x-unknown-linux-gnu
Linux s390x-unknown-linux-musl
Linux x86_64-unknown-linux-gnu
Linux x86_64-unknown-linux-musl
MacOS aarch64-apple-darwin
MacOS x86_64-apple-darwin
Windows x86_64-pc-windows-msvc

Safety

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

License

Licensed under either of

at your option.

PostgreSQL is covered under The PostgreSQL License.

Notes

Uses PostgreSQL binaries from theseus-rs/postgresql-binaries.

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.