5 releases (3 breaking)
0.4.1 | Aug 30, 2024 |
---|---|
0.4.0 | May 27, 2024 |
0.3.0 | Jul 2, 2021 |
0.2.0 | Jun 14, 2018 |
0.1.0 | Apr 13, 2018 |
#207 in Parser implementations
16,118 downloads per month
Used in 11 crates
(6 directly)
47KB
1K
SLoC
packageurl-rs
Read and generate Package URLs in Rust.
About
This crate is an implementation of the Package URL specification for the Rust programming language.
🔌 Usage
Add this crate to the Cargo.toml
:
[dependencies]
packageurl = "0.4.1"
Parse a string containing a raw PURL using the
FromStr
trait:
extern crate packageurl;
use std::str::FromStr;
use packageurl::PackageUrl;
fn example() {
let purl = PackageUrl::from_str("pkg:cargo/packageurl@0.3.0");
}
Creating a PURL from Rust and then generating a string representation using:
the ToString
trait:
extern crate packageurl;
use std::string::ToString;
fn example() {
let canonical = package::PackageUrl::new("cargo", "packageurl")
.expect("only fails if type is invalid")
.with_version("0.3.0")
.to_string();
}
serde
serialization and deserialization is also supported, provided the
serde
feature is enabled:
[dependencies]
packageurl = { version = "0.4.1", features = ["serde"] }
See more in the online documentation.
📝 Features
memchr
: use thememchr
crate to locate separator when parsing.serde
: enable serialization and deserialization support with theserde
crate.
📋 Changelog
This project adheres to Semantic Versioning and provides a changelog as part of the GitHub releases.
💭 Feedback
Found a bug? Have an enhancement request? Head over to the GitHub issue tracker of the project if you need to report or ask something. If you are filling in on a bug, please include as much information as you can about the issue, and try to recreate the same bug in a simple, easily reproducible situation.
⚖️ License
This library is provided under the open-source MIT license.
Dependencies
~0.3–0.8MB
~19K SLoC