## Reader interface

event: 'data'
event: 'eof'
method: pause()
method: resume()
## Writer interface

method: write()
method: close()
event: 'drain' (if write() cannot send all the data,
it will be queued and the 'drain'
event fired once it completes)
## Uses

stdin - reader
stdout, stderr - writer
tcp, unix socket - reader and writer
childProcess.stdin - writer
childProcess.stdout - reader
pipe()[0] - reader
pipe()[1] - writer