I'm making an application in Python3, which will be divided in batch
and gui
parts.
Batch
is responsible for processing logic and gui
is responsible for displaying it.
Which inter-process communication (IPC) framework should I use with the following requirements:
- The GUI can be run on other device than batch (GUI can be run on the same device, on smartphone, tablet etc, locally or over network).
- The batch (Python3 IPc library) should work with no problem on Linux, Mac, Windows, ...
- The IPC should support GUI written in different languages (Python, Javascript, ...)
- The performance of IPC is important - it should be as "interactive" as possible, but without losing information.
- Several GUI could be connected to the same batch.
additional: Will the choice be other if the GUI will be guaranteed to be written in Python also?
Edit: I have found a lot of IPC libraries, like here: Efficient Python to Python IPC or ActiveMQ or RabbitMQ or ZeroMQ or.
The best looking options I have found so far are:
- rabbitmq
- zeromq
- pyro
Are they appropriate slutions to this problem? If not why? And if something is better, please tell me why also.
SocketServer
and connect the GUI through sockets. In this way you are sure it works on every platform and even through the net. – SuperhumanSocketServer
would be better choise than for examplezeromq
orrabbitmq
? – Gassaway_winapi.ReadFile()
and_winapi.WriteFile()
with_winapi.DuplicateHandle()
from the child process on the parent handles passed to it as that works directly in RAM. – Pithos