| I think the real problem is that there is much un-necessary information in the Packages.gz if you you just want to check for updates.
Packages.gz is 5.9MB, (compressed its 1.6 MB), there are 3MB just in the descriptions, its only going to grow.
lf the user is using stable or otherwise hardly ever updates then this isnt an issue, but for testing or unstable most of the downloaded data is the same. Less than 1% of packages change between most peoples updates, but 99% of duplicate information is always beeing downloaded
I think there should be a package index file (similar format to the override file) which just has the package name, version and revision of every package in the dist, it would endup only being a couple of hundred kB.
Complementary to this the metadata for each BINARY package could be merged into the .dsc file, which would only have to be downloaded when its changed (not every time). Probably have to rework the revision numbering scheme to acomadate a changeing .dsc file though.
A package daemon would be cool i think, that way it could be queried and just spit out new/updated descriptions instead of the user downloading so much duplicate information every time.
Anyway this is all too radical to be practical at the moment, its how i see it though.
Rsync is an issue which has been discussed at length on the debian-devel mailing list. Its too CPU intensive, using xdelta to do a binary diff against “milestone’ package.gz’s would be a better way to do it in a traditional way.