Robert Kosek
There is a polymorphic streaming system in Pyrogine2D called TP2DStream. I've implemented TP2DMemoryStream, TP2DFileStream and TP2DExeResourceStream. Now on top of this there is TP2DArchive of which I've implemented TP2DUnzipArchive, which support unzipping standard zip archives. Any place in the library that accepts TP2DStream or TP2DArchive you can pass to it any of those descendants. So yes, if you've implemented TUnRAR for example, in theory you should be able to just pass this instance and it should just work. There are of coarse factors that can prevent it (music streaming) from working as expected. I was concerned with would it be fast enough to keep up. As it turned out it seems to work well with zip files.

Overall, by having the polymorphic streaming interface you can then load textures, surfaces, sound and more from any place you have a TP2DStream/TP2dArchive descendant.