Skip to main content

High-performance delta compression library with automatic algorithm selection

Project description

xpatch-rs - Python Bindings

High-performance delta compression library for Python with automatic algorithm selection.

Installation

pip install xpatch-rs

Note: The package is named xpatch-rs on PyPI, but you import it as xpatch in your code.

Or build from source:

cd crates/xpatch-python
pip install maturin
maturin develop

Quick Start

import xpatch

# Create a delta patch
base = b"Hello, World!"
new = b"Hello, Rust!"
delta = xpatch.encode(tag=0, base_data=base, new_data=new)

# Apply the patch
reconstructed = xpatch.decode(base_data=base, delta=delta)
assert reconstructed == new

# Extract metadata tag
tag = xpatch.get_tag(delta)
print(f"Tag: {tag}")

API Reference

encode(tag, base_data, new_data, enable_zstd=True) -> bytes

Creates a delta patch between base_data and new_data.

Parameters:

  • tag (int): Metadata tag to embed (0-15 for no overhead, larger values supported)
  • base_data (bytes): Original data
  • new_data (bytes): New data
  • enable_zstd (bool): Enable zstd compression (default: True)

Returns: bytes - The encoded delta patch

decode(base_data, delta) -> bytes

Reconstructs new_data from base_data and a delta patch.

Parameters:

  • base_data (bytes): Original data
  • delta (bytes): Delta patch created by encode()

Returns: bytes - The reconstructed new data

Raises: ValueError if delta is invalid

get_tag(delta) -> int

Extracts the metadata tag from a delta patch without decoding.

Parameters:

  • delta (bytes): Delta patch

Returns: int - The embedded tag

Raises: ValueError if delta is invalid

Performance

xpatch achieves exceptional compression ratios on real-world data:

  • 99.8% compression on typical code changes
  • 2 byte median delta for sequential edits
  • Instant decoding (<1µs for most patches)
  • 40-55 GB/s throughput for encoding

Use Cases

Perfect for:

  • Version control systems
  • Document synchronization
  • Incremental backups
  • Network-efficient updates
  • Real-time collaborative editing

License

This project is dual-licensed:

See LICENSE-AGPL.txt and LICENSE-COMMERCIAL.txt for details.

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xpatch_rs-0.3.1.tar.gz (113.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xpatch_rs-0.3.1-cp313-cp313-manylinux_2_34_x86_64.whl (746.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

File details

Details for the file xpatch_rs-0.3.1.tar.gz.

File metadata

  • Download URL: xpatch_rs-0.3.1.tar.gz
  • Upload date:
  • Size: 113.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.10.2

File hashes

Hashes for xpatch_rs-0.3.1.tar.gz
Algorithm Hash digest
SHA256 381d5c9252e682b0d6e350894dcda96129849d3965771d4cd67841f110c911ee
MD5 84061345d4b43337334696f583312571
BLAKE2b-256 005b25ee731abfa6f7ffe5dcbc83c63f77593440ba4bb780fbdca5ab62c52396

See more details on using hashes here.

File details

Details for the file xpatch_rs-0.3.1-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for xpatch_rs-0.3.1-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 c00df78fe6c45cbcf4546c01a301f23c5c66098c31e541d3b716b5516f8e9c70
MD5 997e2db72dd9b7d94512181e389d6953
BLAKE2b-256 f207bf547bc8faa46063e358fffb35e14336cf63eab948cb87f3e31dcb2e4039

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page