[GH-ISSUE #275] FR: Use a BinaryDiff tool to perform updates #142

Closed
opened 2026-02-17 17:06:15 -05:00 by yindo · 3 comments
Owner

Originally created by @CriosChan on GitHub (Nov 2, 2025).
Original GitHub issue: https://github.com/Drop-OSS/drop/issues/275

For the update system, Drop could perhaps use HDiffPatch to create a patch file between the old and new versions. This would mean that, especially for large games, it wouldn't be necessary to re-download everything, a bit like Steam does. If it were also possible to delete the old version (on the server side) once the patch had been created, this would save space on our servers. However, creating the patch file consumes a lot of RAM and takes a long time, so I think it would be more of an optional feature.

Example for a single 1.1GiB binary: creating the patch took 2m46s and consumed about 4GiB of RAM. The time to patch the old binary with the obtained patch: 2s.

If something like this has already been suggested or is already in use, I apologize for creating this issue for nothing. I searched beforehand and couldn't find anything related to that.

Originally created by @CriosChan on GitHub (Nov 2, 2025). Original GitHub issue: https://github.com/Drop-OSS/drop/issues/275 For the update system, Drop could perhaps use [HDiffPatch](https://github.com/sisong/HDiffPatch) to create a patch file between the old and new versions. This would mean that, especially for large games, it wouldn't be necessary to re-download everything, a bit like Steam does. If it were also possible to delete the old version (on the server side) once the patch had been created, this would save space on our servers. However, creating the patch file consumes a lot of RAM and takes a long time, so I think it would be more of an optional feature. Example for a single 1.1GiB binary: creating the patch took 2m46s and consumed about 4GiB of RAM. The time to patch the old binary with the obtained patch: 2s. If something like this has already been suggested or is already in use, I apologize for creating this issue for nothing. I searched beforehand and couldn't find anything related to that.
yindo closed this issue 2026-02-17 17:06:15 -05:00
Author
Owner

@kapdon commented on GitHub (Nov 2, 2025):

I was also looking into this. adding the following for reference:

@kapdon commented on GitHub (Nov 2, 2025): I was also looking into this. adding the following for reference: - https://github.com/TwintailTeam/hdiffpatch-rs as droplet's backend is in rust. - https://github.com/sisong/hsynz - hdiff + zsync to generate metadata file, client can calculate difference and request for the delta.
Author
Owner

@DecDuck commented on GitHub (Nov 2, 2025):

I don't think this feature is worth implementing unfortunately. We already chunk large files into 64MB chunks, so we don't necessarily have to update all of the chunks. The client will be smart enough to only download the chunks it needs.

The time and compute consumption of something like this, and the dev time needed to implement it doesn't feel like it's worth it.

@DecDuck commented on GitHub (Nov 2, 2025): I don't think this feature is worth implementing unfortunately. We already chunk large files into 64MB chunks, so we don't necessarily have to update all of the chunks. The client will be smart enough to only download the chunks it needs. The time and compute consumption of something like this, and the dev time needed to implement it doesn't feel like it's worth it.
Author
Owner

@CriosChan commented on GitHub (Nov 2, 2025):

Yeah, I totally understand. I suggested that because I wasn't entirely sure how the chunk system used by Drop worked. Thanks for your reply anyway, and for your work on Drop. I'll close the issue since what I wanted seems to have already been implemented.

@CriosChan commented on GitHub (Nov 2, 2025): Yeah, I totally understand. I suggested that because I wasn't entirely sure how the chunk system used by Drop worked. Thanks for your reply anyway, and for your work on Drop. I'll close the issue since what I wanted seems to have already been implemented.
yindo changed title from FR: Use a BinaryDiff tool to perform updates to [GH-ISSUE #275] FR: Use a BinaryDiff tool to perform updates 2026-06-05 14:21:42 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Drop-OSS/drop#142