Projects / plumb


plumb is a shell with focus on pipes: instead of pipelines, it can build large graphs of processes (nodes) and pipes (edges). Pipes are simple unidirectional streams without side effects. Traffic can be controlled by virtual processes (which are nodes just like real processes, but are implemented in plumb for minimal overhead). Virtual processes can split, merge, regex filter/alter, and shape the streams. Timers and starting/stopping processes or even rewiring the script on the fly are also supported. It is portable (using libporty) and behaves exactly the same way on Linux, Windows, Mac OS X, many BSD variants, and older UNIX systems.

Operating Systems

RSS Recent releases

  •  14 Apr 2013 13:33

Release Notes: This minor release is about bugfixing (more than 16 fds per process should work), cleanup, and documentation.

  •  05 Apr 2013 22:22

    Release Notes: This minor release is about bugfixing. The shutdown procedure won't lose data in buffers now, virtual processes won't panic on blocking output, and [regex] works as documented for $ and $$.

    •  26 Mar 2013 18:24

    Release Notes: This is the first release of the third rewrite of plumb. It features starting/stopping processes, piping, a rich set of virtual processes for text and binary streams, a virtual process for executing plumb script commands' runtime, and a utility for drawing internal states from dumps. Plumb has been tested on multiple operating systems using the supplied regression tests.


    Project Spotlight


    A new implementation of the standard library for Linux-based systems.


    Project Spotlight

    Alaya Webdav Server

    A simple WebDAV 1.0 server.