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.
Click to show 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 <[email protected]>",
"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.
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 ~/binGrab 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_metaSee 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_metaIf the file has a different name, simply pass it:
pgxn_meta widget.jsonWe welcome community contributions to this project. All contributors must abide by the PostgresSQL Code of Conduct.
- Create Issues to submit bug reports and feature requests
- Submit Pull Requests to fix issues or add features
This project is distributed under the PostgreSQL License.