Crate postgresql_archive
source ·Expand description
§postgresql_archive
Retrieve and extract PostgreSQL on Linux, MacOS or Windows.
§Table of contents
§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
#[cfg(feature = "blocking")] {
use postgresql_archive::configuration::theseus;
use postgresql_archive::VersionReq;
use postgresql_archive::blocking::{extract, get_archive};
let url = theseus::URL;
let (archive_version, archive) = get_archive(url, &VersionReq::STAR).unwrap();
let out_dir = std::env::temp_dir();
let result = extract(url, &archive, &out_dir).unwrap();
}
§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
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
PostgreSQL is covered under The PostgreSQL License.
Modules§
Structs§
- SemVer version as defined by https://semver.org.
- SemVer version requirement describing the intersection of some version comparators, such as
>=1.2.3, <1.8
.
Enums§
- PostgreSQL archive errors
Traits§
- A trait for getting the exact version from a version requirement.
- A trait for getting the exact version requirement from a version.
Functions§
- Extracts the compressed tar
bytes
to the out_dir. - Gets the archive for a given version requirement that passes the default matcher. If no archive is found for the version requirement and matcher then an error is returned.
- Gets the version for the specified version requirement. If a version for the version requirement is not found, then an error is returned.
Type Aliases§
- PostgreSQL archive result type