This provides an assortment of plug-and-play CSP components to wire together (with `Object`-carrying wires) and reuse. Primarilly they are for education and demonstration purposes, but some have value for general applications (e.g. {@link org.jcsp.plugNplay.Delta}, {@link org.jcsp.plugNplay.DynamicDelta}, {@link org.jcsp.plugNplay.Plex}, {@link org.jcsp.plugNplay.Multiplex}, {@link org.jcsp.plugNplay.Demultiplex}, {@link org.jcsp.plugNplay.ProcessRead}, {@link org.jcsp.plugNplay.ProcessWrite}, ...).

The educational purpose is to demonstrate how simple it is to build layered networks of communicating processes. Each component works to a clean channel interface. Component instances can just be wired together. A network of such components is itself another (CSP) component. Network design and analysis takes place independently at each level - we do not have to think about the whole network hierarchy to reason about each level. This enables us to construct components with arbitrarilly rich behaviour without running into combinatorial explosions of complexity.

Examples are given of networks with 20-30 processes (threads). Because of the component layering, we never need to consider more than about 5 at a time and it is easy to see what they do and that they are without deadlock, livelock, starvation or race-hazard problems.