C++ does not have a global parent like Java Object, so there is no single type that can represent all hessian types, so we create an Object base class from which all hessian types are inherited. However, this Object is still not easy to use, complex to construct, and does not provide a complete API similar to that of a standard container. If we use Protobuf to define all Hessian types and use the ProtoBuf Message Object as our base Object class, we can reuse the entire Protobuf API that we provide, thus improving the overall usability.