Releases: CollapseLauncher/SharpHDiffPatch.Core
Releases · CollapseLauncher/SharpHDiffPatch.Core
SharpHDiffPatch-v2.2.5
What's new?
- Adding ZStandard support for Linux build (for both x64 and arm64).
What's changed?
- Moving from standalone ZstdNet code to NuGet ones.
- Moving the compilation entirely from BFlat to .NET Native AOT
Full Changelog: 2.1.0...2.2.5
SharpHDiffPatch-v2.1.0
What's new?
- Adding support for LZMA2 compressed patch (but LZMA compression is not supported yet)
Keep in-mind that the performance of the decompression is slow due to single-threaded and managed code implementation based on managed-lzma by weltkante
- Adding Linux (x64 and ARM64) and Windows (ARM64) builds
- Adding
AdvSimd
support for RLE Calculation on ARM64 machines
What's changed?
- Use
ArrayPool
for bothrleCodeBuffer
andrleCtrlBuffer
on Fast Buffer mode if theArrayPool
space is sufficient - Use
Process.GetCurrentProcess()
to get executable name inSystem.CommandLine
- Code clean-up
What's fixed?
- Fixed 4 step RLE addition not calculating the remaining buffer even the size is more than or equal to 4 bytes
Sidenote:
The ARM64 build for Windows and both x64 & ARM64 builds for Linux don't come with ZStandard decompression support at the moment. The support will be available in the next release.
SharpHDiffPatch-v2.0.2
What's changed?
- Changing the AOT Runtime to .NET 8.0 LTS (bflat and .NET NativeAOT compilations are now available)
- Read string path directly from the pointer
- Use
ArrayPool<T>
to buffer the data - Local changes Improvements
- Adding logging
- Moving to System.CommandLine for parsing Command line arguments
- Use shared buffers from
ArrayPool<T>
widely - Remove unused Compression codes
- Make some methods to be non-static
- Code clean-up
- Move ReadExactly from duplicate StreamExtension class
What's fixed?
SharpHDiffPatch-v1.4.3
SharpHDiffPatch-v1.4.2
What's new?
Minor Changes
- Remove unused
kByteRleType
enum - Changing the AOT Runtime to .NET 8.0-RC1
- Update Zstandard library to v1.5.5
What's fixed?
- Fixed the output potentially get corrupted due to buffers aren't filled properly (Thank you for reporting this @sisong 😃)
SharpHDiffPatch-v1.4.0
What's new?
Performance Optimization
- Vectorize _TBytesRle_load_stream_mem_add()'s copy process
- Replace each struct and class's integer props type from ulong to long and int
- Use its own independent VarInt decoder for int and long
- Enumerate covers instead of buffering it
- Using SSE2 Vector128 for RLE data copy
- Remove unnecessary loop in
_patch_add_old_with_rle
Minor Changes
- Add stream caching cancellable
- Enumerate covers instead of buffering it
- Use long integer for UpdateEvent()
- Switching to .NET 7.0
What's fixed?
Benchmark Result (v1.4.0 vs v1.3.1)
Sample: UnityPlayer.dll
Result (Single file)
Version | Buffer Off | Buffer On |
---|---|---|
v1.3.1 | 963.2098 ms | 784.3218 ms |
v1.4.0 | 158.5076 ms | 94.1231 ms |
SharpHDiffPatch-v1.3.1
What's new?
- Adding support for compressed single and directory patch files. The following supported compressions are:
- ZLib (Deflate)
- PBZip2
- BZip2
- ZStandard
What's changed?
- Removing all Stream seeking routines to reduce overhead on disk activities.
- Buffer all output writings into MemoryStream before flushing all to output streams.
What's fixed?
- Fixed crash while applying single patch.
Benchmark Result (v1.0.0 vs 1.3.0)
Sample File:
- Old File
- Name: UnityPlayer.dll
- Source: BH3_v6.5.0_126602580c16.zip (Honkai Impact 3 SEA file)
- Size: 27,852,936 bytes
- Hash: C640D73F666F1A749C1444873C7004BC6DBA1721 (SHA-1)
- Diff File
- Name: UnityPlayer.diff
- Size: 5,566,321 bytes (Uncompressed)
Result
Time / Version | v1.0.0 | v1.3.1 |
---|---|---|
Buffer mode enabled | 2.7006 sec | 0.7955 sec |
Buffer mode disabled | 5.5304 sec | 0.8910 sec |
SharpHDiffPatch-v1.1.0
What's new?
- Adding support for directory patching (experimental).
What's fixed?
- Fixed some patch file got some of its last part (around 10 - 20 bytes at the end) missing due to RLE Decoding issue.
Additional Notes
Please keep in mind that this project doesn't support compressed patch format yet and only featured some basic functionality, such as: single-file patch and directory patch (experimental)
SharpHDiffPatch-v1.0.0
This is an initial release for this project. We only provides Windows-x64 build for now. Other platforms will be available in the future.
What's new?
- Initial release for v1.0.0
Additional Notes
Please keep in mind that this project doesn't support compressed patch format yet and only featured some basic functionality, such as: single-file patch.