IO Ninja Architecture

In order to be able to program for IO Ninja efficiectively, you need to understand the overall application architecture and where your code fits in.

IO Ninja is a multi-process application. The main process called ioninja (or ioninja.exe on Windows) is a QT-based application; it shows the main UI (user-interface) and, when necessary, starts auxillary server processes called ioninja-server (or ioninja-server.exe on Windows). For example, a new ioninja-server process is created when you start a new session, or when you open a previously saved .njlog file. The two processes efficiently communicate with each other using shared memory-based transport (the actual transport engine is custom-written; it is 2 to 5 times faster than the standard pipe facilities provided by the OS).

The important thing to understand is that your Jancy code always runs inside the server process – even when it’s used to show UI.