#postgresql #database-server #server #embedded-database #embedded

postgresql_archive

一个用于下载和提取 PostgreSQL 归档的库

43 个版本 (15 个破坏性更新)

0.16.2 2024年8月24日
0.15.0 2024年8月1日
0.14.2 2024年7月17日
0.7.3 2024年3月25日

#905 in 数据库接口

Download history 110/week @ 2024-05-04 67/week @ 2024-05-11 679/week @ 2024-05-18 459/week @ 2024-05-25 493/week @ 2024-06-01 624/week @ 2024-06-08 863/week @ 2024-06-15 576/week @ 2024-06-22 597/week @ 2024-06-29 742/week @ 2024-07-06 549/week @ 2024-07-13 580/week @ 2024-07-20 762/week @ 2024-07-27 911/week @ 2024-08-03 913/week @ 2024-08-10 562/week @ 2024-08-17

每月 3,189 次下载
用于 5 个 Crates (2 个直接使用)

(Apache-2.0 OR MIT) AND PostgreSQL

110KB
2.5K SLoC

PostgreSQL 归档

ci Documentation Code Coverage Benchmarks Latest version License Semantic Versioning

一个可配置的库,用于下载和提取 PostgreSQL 归档。

示例

异步 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
}

同步 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)
}

功能标志

postgresql_archive 使用 [功能标志] 来处理编译时间和二进制大小。

以下功能可用

名称 描述 默认?
blocking 启用阻塞 API
native-tls 启用 native-tls 支持
rustls-tls 启用 rustls-tls 支持

配置

名称 描述 默认?
theseus 启用 theseus PostgreSQL 二进制文件
zonky 启用 zonky PostgreSQL 二进制文件

散列器

名称 描述 默认?
md5 启用 md5 散列器
sha1 启用 sha1 散列器
sha2 启用 sha2 散列器 是¹

¹ 由 theseus 功能标志启用。

仓库

名称 描述 默认?
github 启用 github 仓库 是¹
maven 启用 maven 仓库

¹ 由 theseus 功能标志启用。

支持的平台

postgresql_archive 提供以下实现

安全性

此 crate 使用 #![forbid(unsafe_code)] 来确保所有内容都以 100% 安全的 Rust 实现。

许可证

根据以下任一项许可

由您选择。

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交的任何贡献,均应根据上述方式双重许可,不附加任何额外条款或条件。

依赖关系

~18–35MB
~593K SLoC