hdiff-update-core 0.1.0

Core library for signed HDiffPatch-based differential application updates.
Documentation

hdiff-update-core

Core Rust library for signed HDiffPatch-based application updates.

The crate provides:

  • SHA-256 file hashing and verification
  • signed JSON update manifests
  • Ed25519 release key generation, signing, and verification
  • HTTP artifact download helpers
  • HDiffPatch hdiffz / hpatchz process invocation
  • update preparation with delta selection and full fallback

This crate does not embed HDiffPatch binaries. Production applications should package or resolve hpatchz explicitly.

Example

use hdiff_update_core::{prepare_update, PrepareUpdateOptions};

# async fn run() -> Result<(), Box<dyn std::error::Error>> {
let prepared = prepare_update(
    PrepareUpdateOptions {
        manifest_url: "https://updates.example.com/latest.json".to_string(),
        platform: None,
        current_version: Some("0.1.0".to_string()),
        current_artifact_path: None,
        output_path: None,
        patch_path: None,
        cache_dir: None,
        hpatchz_path: None,
        signature_public_key: Some("base64-ed25519-public-key".to_string()),
        require_signature: true,
        force: true,
        headers: Vec::new(),
        timeout_secs: Some(60),
    },
    |_event| {},
)
.await?;

println!("prepared installer: {}", prepared.artifact_path.display());
# Ok(())
# }