1. A method, implemented on a processing device, for projecting data to a first buffer for use by an application, the method comprising: projecting a portion of data from a second buffer to the first buffer the first buffer being a projection buffer; projecting a portion of data from a third buffer to the first buffer, as a result of the projecting of the portion of the data from the second buffer and the portion of the data from the third buffer, the first buffer does not include any data projected from the second buffer and the third buffer, but instead includes an ordered list of source spans describing a span of the portion of the second buffer and a span of the portion of the third buffer; and providing, to an application, the portions of the data projected to the first buffer, the portion of the data from the second buffer and the portion of the data from the third buffer appearing to the application as if included in the first buffer, wherein the method is performed by the processing device.