Here are basic comparisons of some protocols mentioned above:
Messaging Technologies for the Industrial Internet and the Internet of Things Whitepaper (PDF)
Internet of Things: protocols war!
Choosing Your Messaging Protocol: AMQP, MQTT, or STOMP
IoT Protocol Wars: MQTT vs CoAP vs XMPP
Beyond MQTT: A Cisco View on IoT Protocols
Understanding The Protocols ...
Nanopb is a small code-size Protocol Buffers implementation in ansi C. It is especially suitable for use in microcontrollers, but fits any memory restricted system.
It lacks some of the original protocol buffers specifications such as services so it's not suitable to run RPC with it
I have successfully used the Python modbus-tk library for communicating with multiple Mobus devices but there is also a pymodbus library -
are Open Source (LGPL for modbus-tk & BSD for pymodbus)
are Cross Platform
Support Serial & TCP communications
Can act as Master or Slave
Support scripting, etc., in python.
The main ...