We'll need to support reading/writing from both sides, with buffers and pipes, as well as retrieving/updating flags.