Design Goals

The design goals for OpenTrafficShaper are an extremely light weight traffic shaping package which is able utilize plugins to implement required features and run in very small amounts of RAM.

Plugin/Interface: Webserver

Pages are plain modules with nothing special that display output.

Snapins are full on plugins which inject resources into the webserver. WebSockets is a good example of this which injects both a protocol transition handler and a websocket handler into the webserver.

Plugin/Interface: Statistics

The statistics plugin/interface is a system which allows for a central statistics management system. This system is responsible for storing of statistics, providing a subscription interface which can trigger events on new statistic information. This interface is fed from a specific shaper statistics module by triggering its statistics update event. Look at the tcstats plugin for an example.