Returns the (write, read) ends of a pipe for transferring bytes, analogous to a unix pipe.
in_flight_writes defines the amount of chunks of bytes to keep in memory until the write end will block when writing.
If 0, the write end will always block until the read end consumes the transferred bytes.