1 个不稳定版本

0.1.0 2024年8月8日

#555数据库接口

Download history 101/week @ 2024-08-05

每月101 次下载

PostgreSQL

230KB
6K SLoC

PGXN Meta

license-badge crates-badge docs-badge ci-badge cov-badge deps-badge

pgxn_meta crate 提供了 PGXN Meta Spec 验证


PGXN Meta Spec 定义了 PGXN 源分发包的元数据文件 (META.json) 的要求。该项目为 Rust 提供了处理 spec META.json 文件的crates。

crates 使用

点击以显示 `Cargo.toml`。
[dependencies]
serde_json = "1.0"
pgxn_meta = "0.1"
use serde_json::json;
use pgxn_meta::*;

func main() {
    // Parse the contents of a META.json file into a serde_json Value
    let meta = json!({
      "name": "pair",
      "abstract": "A key/value pair data type",
      "version": "0.1.8",
      "maintainer": "theory <[email protected]>",
      "license": "postgresql",
      "provides": {
        "pair": {
          "file": "sql/pair.sql",
          "version": "0.1.8"
        }
      },
      "meta-spec": { "version": "1.0.0" }
    });

    // Validate the META.json contents.
    let mut validator = Validator::new();
    if let Err(e) = validator.validate(&meta) {
        panic!("Validation failed: {e}");
    };
}

有关完整详细信息,请参阅 pgxn_meta 在 docs.rs 上的文档

安装

安装 pgxn_meta 有几种方法。

ubi

安装 通用二进制安装程序 (ubi) 并使用它来安装 pgxn_meta 和许多其他工具。

ubi --project pgxn/meta --in ~/bin

二进制发布

获取适当的二进制 发布版,解包或解压它,并将 pgxn_meta 可执行文件放在您的路径中的某个位置。

Cargo

通过运行 cargo 编译并安装 pgxn_meta

cargo install pgxn_meta

有关二进制安装位置的详细信息,请参阅 cargo 文档

使用

只需执行 pgxn_meta 即可验证当前目录中的 PGXN META.json 文件

pgxn_meta

如果文件有不同的名称,只需传递它即可

pgxn_meta widget.json

贡献

我们欢迎社区为此项目做出贡献。所有贡献者都必须遵守 PostgreSQL 行为准则

  • 创建 问题 以提交错误报告和功能请求
  • 提交 拉取请求 以修复问题或添加功能

许可证

该项目在 PostgreSQL 许可证 下分发。

依赖关系

~11MB
~218K SLoC