Crates.io | pgxn_meta |
lib.rs | pgxn_meta |
version | 0.4.0 |
source | src |
created_at | 2024-08-08 15:17:02.191114 |
updated_at | 2024-10-08 21:27:37.534971 |
description | The PGXN distribution metadata specification |
homepage | |
repository | https://github.com/pgxn/pgxn-meta-spec |
max_upload_size | |
id | 1329658 |
size | 622,867 |
The pgxn_meta crate provides PGXN Meta v1 and v2 validation and management
The PGXN Meta v1 and v2 specs define the requirements for the metadata
file (META.json
) file for PGXN source distribution packages. This project
provides Rust a crates for working with spec META.json
files, as well as
PGXN-generated release META.json
files.
Cargo.toml
.[dependencies]
serde_json = "1.0"
pgxn_meta = "0.2"
use serde_json::json;
use pgxn_meta::dist::Distribution;
func main() {
// Load 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 <theory@pgxn.org>",
"license": "postgresql",
"provides": {
"pair": {
"file": "sql/pair.sql",
"version": "0.1.8"
}
},
"meta-spec": { "version": "1.0.0" }
});
// Validate and load the META.json contents.
match Distribution::try_from(meta) {
Err(e) => panic!("Validation failed: {e}"),
Ok(dist) => println!("Loaded {} {}", dist.name(), dist.version()),
};
}
See the pgxn_meta
docs on docs.rs for complete details.
There are several ways to install the pgxn_meta
distribution META.json
validation CLI.
ubi
Install the universal binary installer (ubi) and use it to install
pgxn_meta
and many other tools.
ubi --project pgxn/meta --exe pgxn_meta --in ~/bin
Grab the appropriate binary release, untar or unzip it, and put the
pgxn_meta
executable somewhere in your path.
Compile and install pgxn_meta
via cargo
by running:
cargo install pgxn_meta
See the cargo docs to learn where the binary will be installed.
Simply execute pgxn_meta
to validate the PGXN META.json
file in the
current directory:
pgxn_meta
If the file has a different name, simply pass it:
pgxn_meta widget.json
We welcome community contributions to this project. All contributors must abide by the PostgresSQL Code of Conduct.
This project is distributed under the PostgreSQL License.