HTTP Archive format (HAR) serialization & deserialization library, written in Rust.
JSON-only use (default):
[dependencies]
har = "0.9"Enable YAML serialization:
[dependencies]
har = { version = "0.8", features = ["yaml"] }HAR input is always parsed from JSON.
JSON serialization is available by default.
YAML serialization through to_yaml is available only when the yaml feature is enabled.
use har::{from_str, to_json, HarVersion};
fn main() -> Result<(), har::Error> {
let input = r#"{
"log": {
"version": "1.2",
"creator": { "name": "example", "version": "1.0" },
"entries": []
}
}"#;
let har = from_str(input)?;
assert_eq!(har.version(), HarVersion::V1_2);
println!("{}", to_json(&har)?);
Ok(())
}With the yaml feature enabled, you can also serialize parsed HAR documents as YAML:
use har::{from_str, to_yaml};
fn main() -> Result<(), har::Error> {
let input = r#"{
"log": {
"version": "1.2",
"creator": { "name": "example", "version": "1.0" },
"entries": []
}
}"#;
let har = from_str(input)?;
println!("{}", to_yaml(&har)?);
Ok(())
}See docs.rs/har for the full library API documentation.
This project follows semver and conventional commits. CI runs on GitHub Actions, and releases are prepared and published with release-plz on master.
See CHANGELOG.md for release history.
Inspired by softprops/openapi.