9 releases (breaking)
| 0.7.0 | May 31, 2025 |
|---|---|
| 0.6.0 | Mar 26, 2025 |
| 0.5.2 | Jan 7, 2025 |
| 0.5.1 | Nov 15, 2024 |
| 0.1.0 | Aug 8, 2024 |
#320 in Web programming
644 downloads per month
505KB
13K
SLoC
PGXN Distribution Metadata
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.
Crate Usage
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 <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.
Installation
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
Binary Releases
Grab the appropriate binary release, untar or unzip it, and put the
pgxn_meta executable somewhere in your path.
Cargo
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.
Usage
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
Contributing
We 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
License
This project is distributed under the PostgreSQL License.
Dependencies
~18MB
~278K SLoC