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 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 engine checks the cache for blocks to satisfy the block request; the client block granularity engine provides at least one predictively streamed block to the virtual execution environment if the 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.