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.