JavaScript port of libchan based around streams