A pipe-like library with push and pull operations, mutable internal state, and optional shared state