ngld / knossos

NuKnossos a complete rewrite of the old Knossos mod manager. Nebula also lives here since it's easier to manage both projects in a single monorepo. If you're looking for the old code, go to https://github.com/ngld/old-knossos.
Apache License 2.0
24 stars 2 forks source link

Bandwidth optimisation for updates #28

Open ngld opened 3 years ago

ngld commented 3 years ago

Knossos and Nebula could compare a new mod release to a previous release and build a list of modified files. Since Knossos can parse VP files, we could search for changes within VPs as well. The idea is that we build a hash database for both releases and then look for differences. If files have only been renamed, we don't have to include the actual content in the update. If a file hasn't changed, we can skip it completely. The idea is that we could automatically build one or more compressed archives which contain only the changes. Knossos could then download and apply those changes which would be faster and save bandwidth compared to re-downloading the whole mod.

To make this usable, Knossos will have to store a database of file hashes for all currently installed mods. This database will be updated whenever a mod is installed, updated or removed.