Inter Process Communication (IPC) Landscape

This is a surprisingly good article and fairly comprehensive. https://www.linkedin.com/pulse/zoo-ipc-frameworks-keep-track-things-torsten-mosis/

IDL + RPC go together and help implement Request/Response, but don’t deal with Publish/Subscribe

Interface Description Language (IDL):

data interchange format

  • protobuf / protocol buffers
  • capnproto
    • specifically also a capability based rpc system
  • thrift
  • json

RPC protocol (remote procedure call)

  • gRPC
  • graphQL
  • rest (not function oriented, it’s resource oriented, but can be abused for this)
  • json-rpc

Summary

Request/Response frameworks

  • Apache Avro
  • Apache Thrift
  • CORBA
  • GraphQL
  • gRPC
  • JSON-RPC
  • REST
  • SOAP
  • Twirp

Publish/Subscribe Frameworks

  • AMQP
  • CoAP
  • DDS
  • eCAL
  • MQTT
  • XMPP

Hybrid communication

  • D-Bus
  • ICE
  • SOME/IP
  • WAMP
  • ZeroMQ
  • Message serialization libraries
  • Cap’n Proto
  • FlatBuffers
  • MsgPack
  • Protobuf

IDLs

  • Avro IDL
  • Franca IDL
  • ICE
  • OMG IDL
  • Protobuf
  • Thrift IDL
  • WSDL