Expand description
§nzb-rs
nzb-rs
is a spec compliant parser for NZB files.
§Installation
nzb-rs
is available on crates.io, so you can simply use cargo to install it.
cargo add nzb-rs
Optional features:
serde
: Enables serialization and deserialization via serde.
§Example
use nzb_rs::{Nzb, ParseNzbError};
fn main() -> Result<(), ParseNzbError> {
let xml = r#"
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE nzb PUBLIC "-//newzBin//DTD NZB 1.1//EN" "http://www.newzbin.com/DTD/nzb/nzb-1.1.dtd">
<nzb
xmlns="http://www.newzbin.com/DTD/2003/nzb">
<file poster="John <nzb@nowhere.example>" date="1706440708" subject="[1/1] - "Big Buck Bunny - S01E01.mkv" yEnc (1/2) 1478616">
<groups>
<group>alt.binaries.boneless</group>
</groups>
<segments>
<segment bytes="739067" number="1">9cacde4c986547369becbf97003fb2c5-9483514693959@example</segment>
<segment bytes="739549" number="2">70a3a038ce324e618e2751e063d6a036-7285710986748@example</segment>
</segments>
</file>
</nzb>
"#;
let nzb = Nzb::parse(xml)?;
println!("{:#?}", nzb);
assert_eq!(nzb.file().name(), Some("Big Buck Bunny - S01E01.mkv"));
Ok(())
}
§Safety
- This library must not panic. Any panic should be considered a bug and reported.
- This library uses
roxmltree
for parsing the NZB.roxmltree
is written entirely in safe Rust, so by Rust’s guarantees the worst that a malicious NZB can do is to cause a panic.
§License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/license/MIT)
at your option.
§Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Structs§
- File
- Represents a complete file, consisting of segments that make up a file.
- Meta
- Represents optional creator-definable metadata in an NZB.
- Nzb
- Represents an NZB.
- Segment
- Represents a single segment of a file in an NZB.
Enums§
- File
Attribute Kind - Represents the attributes that can be present in a ‘file’ element of an NZB document.
- Parse
NzbError - Represents errors that can occur during the parsing of an NZB document.
- Parse
NzbFile Error - Represents errors that can occur when attempting to parse an NZB file from a file path.