3 ms·
Streaming is not unimportant for the examples I gave. Both are 1 step away from being replacements for flash apps. They are basically a webpage with all assets
by greggman 14y ago
Streaming is not unimportant for the examples I gave. Both are 1 step away from being replacements for flash apps. They are basically a webpage with all assets bundled together making them easy to distribute. Except, because a non-streamable format was chosen they can't make the leap to full flash replacements.
Even as an extensions or widget, the fact that I can't stream them means I have to wait for them to download entirely before they can be used. I can certainly imagine a Chrome app (game) > 500meg that would be awesome if I could start interacting with as soon as 1-20 meg had been downloaded. That use case though was made harder because a non streamable format was chosen. Instead the app has to download some small boot loader and the manually stream the rest of its assets. With a little more foresight that could have been solved directly by the format chosen.
As for tar/gz not being random access. There's nothing preventing implementations from caching locations as the file is downloaded or inserting a file as part of the tar that lists the locations.
- saurik 14y agoThe problem you are talking about is so much more complex than just "use tgz", though... like, a Chrome extension includes a metadata file... are you intending that the tgz is also constructed to make certain that that metadata file must be near the beginning of the archive? Again, one of the main reasons that zip files are used is because they are better supported by simple GUI tools, as they are intended to be constructed by reasonably "end" developers. As for having an implementation caching locations as the file is being downloaded, if you are going to that much trouble to layer browser intelligence over the file format, you may as well just download the index first; we do this quite often in iPhone-jailbreak-land, as Apple uses zip files for firmware updates: we download the index, and use that to download just the parts we need (all using Range headers). https://github.com/rpetrich/partialzip https://github.com/rpetrich/partialzip