Comments (6)
Can we close this ?
from appimageupdate.
Let's keep the "Investigate..." tickets that contain ideas around, unless we come to a conclusion that they are not feasible.
from appimageupdate.
Wrong project, though. Please open an issue in AppImageUpdate's tracker if you want to keep this information somewhere (or move it there).
from appimageupdate.
@probonopd zsync and itch's solutions are completely different and zsync is a solution for what itch did , If I'm right , they use pre-calculated delta's , (i.e) they do delta's between two versions (like git does).
From zsync technical paper ,
Finally, there are the mechanisms traditionally used among programming projects — version control and diffs. The Linux kernel, for instance, is distributed by providing patches to get from one version to the next ([LKML FAQ]). For comparison with the other methods discussed, we can say that this method effectively pre-computes the changes between versions and then sends only the changes to the client. But it only works with a given fixed starting point. So to get from, say, 2.4.19 to 2.4.27, the user has to download the patch 2.4.19 -> 2.4.20, the patch 2.4.20 -> 2.4.21, and so on. This method is efficient if there are clear releases and the frequency of releases is smaller than the frequency with which users check for updates — it is less efficient when releases in the affected files are frequent, as there are then large numbers of patch files to manage and download (and these files contain enough data to construct not only the final file, but every intermediate revision).
As stated by the author , Developers who use AppImageUpdate don't really need to care about the starting point , which is a good thing , Imagine how hard would it be for the developer to save all old versions diff and patches in order to update from any old version to the latest one. So I think zsync is much suited for our use case. But we can do something about the I/O usage issue.
from appimageupdate.
f I'm right , they use pre-calculated delta's
If that is the case, then indeed that is not a solution for us.
from appimageupdate.
From itchio/itch#683 (comment)
Our diff/patching system is very well suited to our needs, cross-platform, fast, etc. so there's really no need to fill here.
EDIT:
Also the itch's docs on wharf which speaks about algorithm (diff/patching) ,
The diff algorithm is a modified version of the rsync algorithm, and has the following properties:
Full access to the old version is not required — a series of hashes is enough.
What they mean above is that , the server(this also implies that we need special software on the server) does the hashing of the old version with respect to the block size and sends the hashes to client and the client simply uses these hashes to compare the difference by hashing the new version , This is really not required in our case since we don't care about upload bandwidth for now but still its a great idea if you wish to minimize the upload bandwidth.
And the rest is just patching using these precomputed diffs downloaded from the server.
But , If we reverse this process(that is swap the places of server and client) , it looks much more like an inefficient implementation of rsync. So I think there is no use in investigating this protocol.
from appimageupdate.
Related Issues (20)
- Dotnet core interoperability question
- Updater Constructor does not actually throw std::invalid_argument
- GithubReleasesUpdateInformation::buildUrl is writing to the console HOT 2
- Reduce amount of api calls. HOT 2
- Option to ignore appimages in specified directories? HOT 2
- Feature request: allow overriding AppImage updInfo HOT 6
- "Could NOT find CURL (missing: HTTP)" while building on Ubuntu 14 HOT 12
- Incompatibility when dynamically linking libappimageupdate in GTK app HOT 10
- Assembled ZSync URL points to wrong file
- command line flags missing HOT 6
- No rule to make target libarchive.a
- Why can't AppImageUpdate update itself when prompted by the user? HOT 7
- Patch apps for update HOT 2
- Remove "alpha" from the version
- Unclear downloads in the release page, and no information in the readme HOT 1
- Update panel shortcut HOT 1
- double click closes the file-chooser HOT 1
- [Feature request] Multiple selection
- Unable to build for armhf HOT 15
- Thank you!
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from appimageupdate.