ext-encoding
ext-encoding copied to clipboard
Sub buffers
A ByteBuffer which can read from a subsection of another ByteBuffer's memory would be useful for reducing allocations.
For example, Minecraft packet batches contain length-prefixed packet buffers. Each of these buffers currently has to be copied to a new BinaryStream via substr() in order to be decoded. This allocation could be avoided if BinaryStream were capable of directly reading the memory of the original stream.
~This will require removing the zend_string* currently used to handle buffers internally, as zend_string can't be made to point at existing data.~ never mind... this is solvable in other ways