I'm prototyping some single machine, single user software with a client-server model; the first client for which will be a CLI, but I expect a (local) webapp/GUI to come later.
For the CLI, I'd like to be able to either connect to an existing server instance to run whatever commands, or start one up for the duration of the command if it doesn't exist. The GUI would start a longer-running server, i.e. until it was closed.
What are the good options for messaging (transport) between client(s) and server here?
Unix sockets? HTTP? AMQP? ZeroMQ? Something else?
I'd like to use protobuf/cap'n proto, so it's the transport I'm asking about really - unless there's some all in one solution to recommend perhaps. I'd also like not to rule Windows support out by this decision.