hdiff-update-core 0.1.3

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
  • delta-only update preparation for clients that must delegate full downloads to another updater

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()),
        expected_version: Some("0.2.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(())
# }