The Labor Message Protocol aims to be a common base for multiple microcontroller projects that utilize message based communication between a µC and a host. Currently there is a protocol used by the can gateway via uart and two similar ones for a usb can gateway and a usb rfm12 gateway. Also both gateways supply a tunneling protocol that tunnels the can or rfm12 packets via tcp. A common messaging protocol could offer message passing via uart, usb and tcp connections while maintaining a single API to clients that hides the underlying interfaces complexity, provides channel integrity (in the case of uart) and rate limiting (uart and usb). By unifying the message API and thus the in-memory packet structure it is possible to transparently pass messages coming from one medium to another. This enables a tcp client to communicate with a distant microcontroller node via a transparent gateway computer that interfaces the microcontroller.
currently based on the can uart protocol, here's the source source