All notable changes to this project are documented in this file. The format follows Keep a Changelog, and the project adheres to Semantic Versioning.
Unreleased
1.0.0 - 2026-09-17
First release.
Added
Rexd.signature/2,Rexd.delta/3andRexd.patch/3over binaries.Rexd.SignatureandRexd.Deltaencoding and decoding in the librsync 2.x wire format, verified againstrdifffrom librsync 2.3.2 and 2.3.4.Rexd.Stream.signature/2,Rexd.Stream.delta/2andRexd.Stream.patch/3over enumerables of binaries, with bounded memory, andRexd.StreamError.Rexd.Blake2b: BLAKE2b-256 in pure Elixir.- All four librsync signature types, selected with the
:weak(:rabinkarp,:rollsum) and:strong(:blake2,:md4) options. Rexd.recommended_block_len/1, matchingrdiff's default block length.:max_sizeoption for patching, bounding the output of untrusted deltas.Rexd.InPlace: in-place patching following Rasch and Burns, withmake_safe/2and the:in_placeoption ofRexd.delta/3on the sender andpatch/4on the receiver. In-place deltas remain ordinary librsync deltas.Rexd.Delta.Stats: literal and copy bytes and command counts, plus search counters, fromRexd.delta_with_stats/3,Rexd.Delta.stats/1and the:on_statsoption ofRexd.Stream.delta/3.