Skip to main content

acsync-core

PyPI License Python

acsync-core is an incremental binary patch system for Python. It uses SHA256 for change detection and 7z (LZMA2) for compression — ideal for distributing application updates with minimal bandwidth.

Powered by ACSync.Core (.NET) via pythonnet.

Installation

pip install acsync-core

Windows only — the underlying .NET assembly and 7za.exe are bundled for Windows x64. Requires a .NET 10 SDK or later runtime on the target machine.

Quick Start

1. Create a manifest

import acsync

# Scan directory A (v1.0) and save its manifest
manifest_a = acsync.create_manifest(r"D:\app\v1.0")
acsync.save_manifest(manifest_a, r"D:\app\manifest_v1.json")

# Scan directory B (v2.0) and save its manifest
manifest_b = acsync.create_manifest(r"D:\app\v2.0")
acsync.save_manifest(manifest_b, r"D:\app\manifest_v2.json")

2. Diff two manifests

diff = acsync.diff(manifest_a, manifest_b)
print(f"Changed: {len(diff['changed'])} files")
print(f"Deleted: {len(diff['deleted'])} files")
for f in diff["changed"]:
    print(f"  + {f['relativePath']} ({f['sha256'][:12]}...)")

3. Create a patch

acsync.create_patch(
    r"D:\app\v1.0",
    r"D:\app\v2.0",
    r"D:\app\update_patch.7z",
)

4. Apply a patch

acsync.apply_patch(
    r"D:\deployed_app",
    r"D:\app\update_patch.7z",
    exclude_extensions=[".config"],  # preserve local config files
)

API

Function Description
create_manifest(directory) Scan a directory, returns manifest dict with SHA256 per file
save_manifest(manifest, path) Save manifest dict to JSON file
load_manifest(path) Load manifest from JSON file
load_manifest_from_directory(dir) Load manifest from a directory (acsync_manifest.json)
diff(old, new) Compare two manifests, returns {changed: [...], deleted: [...]}
create_patch(old_dir, new_dir, output?) Create incremental 7z patch between two directories
apply_patch(target, patch?, exclude?) Apply patch to target directory

License

Apache 2.0

Metadata

Release files for acsync-core 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for acsync-core 1.0.0
File Size Uploaded
acsync_core-1.0.0.tar.gz 499.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for acsync-core 1.0.0
File Interpreter ABI Platform
acsync_core-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.0 MB

Release files / acsync_core-1.0.0.tar.gz

Download URL acsync_core-1.0.0.tar.gz
Size 499.5 kB
Tags Source
SHA-256 checksum
How to use checksums
0e617a35ed4f35ac033c8359bd3e9e51b0c677959f47d42e02aa76a2155725f4
BLAKE2b-256 checksum
How to use checksums
843eb549f7cdb255968fdd55b91206b0203bf752b51afe29808e206db167ff41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.6

Release files / acsync_core-1.0.0-py3-none-any.whl

Download URL acsync_core-1.0.0-py3-none-any.whl
Size 511.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d2fce5d25c719104c211804a62a93bc68781265da0be25492a54ec2b2188e7a3
BLAKE2b-256 checksum
How to use checksums
72752e989a46ec61c0496abda1c14f6af2214bd770760a55132ab08f95093e35
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.6

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page