1. A system comprising: a virtual execution environment; a block granularity caching engine; a cache; wherein, in operation: a process associated with a stream-enabled application is executed in the virtual execution environment; the virtual execution environment intercepts a request for a resource from the process executing in the virtual execution environment; the virtual execution environment identifies one or more blocks that are associated with the resource; the virtual execution environment makes a block request associated with the resource; the block granularity caching engine intercepts predictively streamed blocks as the predictively streamed blocks are transmitted to the system; the block granularity caching engine checks the cache for blocks to satisfy the block request; the block granularity caching engine associates at least one of the predictively streamed blocks with the requested block; the block granularity caching engine provides the at least one predictively streamed block to the virtual execution environment if the at least one predictively streamed block is found in the cache; the virtual execution environment satisfies the resource request of the process using the at least one predictively streamed block.