Here are some elements of specification of the GRAS protocol. It is not supposed to have several implementations, but once version 1 will be out, all versions of GRAS are supposed to be able to communicate with previous ones. All messages have an header and a payload. Here is the header format, considering it as an array of chars. HEADER: Transport layer msg[0...3]: the string 'GRAS' msg[4]: protocol version (currently '0') HEADER: Messaging layer msg[5]: discriminent = Archi & msg type & Flags D & 248 << 3 : archi (datasize, alignment, endianess) of message emitter (32 possibles; 5 known so far) D & 7 : Type of message: 0: one-way message 1: method call (answer expected) 2: successful return (usual datatype attached as payload) 3: error return (payload = remoterr) 4..7: idem, with group communication (ask for forward) list of receivers (and path for answer) placed before the payload msg[6..8]: message serial (for answers; omitted for one-ways) short in binary encoding (loop every 65536) msg[9..]: message name (string in the binary encoding) PAYLOAD: in the binary encoding