Support generic streams, not just Buffer

@purplefox can you review this ?
Also OOM is easier to detect then throttling too low :)