4. The need for a scripting engine.

     It does not matter how well designed a BitTorrent client is, after a certain period of use, specific needs will arise out of the usage pattern of the client program. For example, the Vuze BitTorrent client displays on the program status bar the number of peers currently available on the Vuze DHT network and also the mainline DHT network if the mainline DHT plugin is installed. Like most BitTorrent clients, Vuze has two independent parts: the engine or API (Application Programming Interface) part that calculates the number of peers, and the GUI (Graphic User Interface) part that displays this number on the program status bar.

     If the engine part is a component of a scripting engine or its components are made available to external programs, the number of peers can be obtained without having to deal with the GUI display part of the client program. In this scenario, a scripting engine can support any interactive requirements in a true scripting environment such as Python or even headless environment such as a web server. This is possible due to all features and parameters displayed by the GUI component can be configured by the scripting environment without having to modify and compile or rebuild the client from its source code.