v0.9.7
Headline: a fast, scriptable device health check (oxvif::health) — point
it at a camera and get a Pass/Warn/Fail/Skip conformance report with a Profile
S/T/G assessment, a readable alternative to the official ONVIF Device Test Tool.
Also adds the firmware-upgrade / system-restore upload-URI flow and corrects
two write-path XML bugs.
Added
- Health check —
oxvif::health(opt-in, behind thehealthfeature; pure
library code overOnvifSession, no extra dependencies).HealthCheck::new(url).with_credentials(..).run().awaitreturns a
HealthReportof per-checkCheckResults (status + category + timing) plus
aProfileAssessment(S/T/G verdict).Displayrenders a readable summary.- Checks run concurrently and are read-only by default; opt into write/clock
probes via the builder. - New
examples/healthcheck.rs(--features health).
- Device firmware / restore (upload-URI flow) —
start_firmware_upgrade()
→FirmwareUpgradeStartandstart_system_restore()→SystemRestoreStart.
Each returns the upload URI + timing; the caller HTTP-POSTs the image/backup
(the SOAP transport deliberately doesn't carry the binary payload). PartialEqderived on the video-encoder configuration types
(VideoEncoderConfiguration,VideoEncoderConfigurationOptions, and related)
so downstream code can diff configs without hand-written comparisons.
Fixed
SetVideoEncoderConfigurationand PTZSetConfigurationproduced malformed
request XML that some cameras rejected — corrected the element nesting/order.
Docs
- Recorded a read-path audit under
docs/audit-2026-05.md.