use proto/thrift