Drift can be used to serialize and deserialze objects in a cross language manner. It will generate code based on a grammar and provide hooks for data migrations across different grammar versions. In many ways very similar to Thrift (original code base) and protobuffers. It's focus is serialization and data migration rather than RPC and service implementation though.