The minimum principle

When you break down tools to the smallest useful conceptual size, and lowest common denominator, it's possible to build new solutions, integrate with other solutions more easily, contain security, and maintain transparency.

Lowest common denominator - This is the dominant concept behind our minimum principle. We build something once that can be used by the broadest range of users.

Pareto principle - minimum effort - We make design decisions where the most benefit is gained with minimal effort.

Minimum User Interface - Dull is a command-line tool. We consider a command-line tool to be the lowest common denominator for user interface. This works across many operating systems, and it can be controlled by any other software by launching it in the background.

Minimum Tunnelling Abstraction - Dull is a software-defined tunnelling tool. Ducts are sub-components to control protocol and path for each tunnel. Each duct component is a cohesive unit that is independently testable, to contain security. On an orthogonal dimension, each node is a self-contained distributed system, allowing transparency for the customer, and flexibility for tunnelling paths.

Minimum Dependencies - Dull requires .Net Framework/Mono, but no other DLLs are needed. The core engine works using only the BCL libraries in the .Net Framework. This contains security. Any functionality that goes beyond this, will need to be optionally compiled with a custom build.