-
Notifications
You must be signed in to change notification settings - Fork 30.2k
Description
The current structure of the C++ plugin code (used by Linux and Windows shells) is that all of the encoding/decoding is the client wrapper, which means that each plugin needs a copy of it. E.g., if a plugin uses the JSON codec, it has to not only build json_*_codec.cc, but statically link a copy of jsoncpp.
The wrapper library will probably continue to provide the generic templated codec code, for implementing custom codecs, but if possible implementations of the core codecs should be available in the shared library for ease of use. This would mean making a type hierarchy (as is needed for Standard*Codec already) that can be passed through an ABI-friendly API, so that objects can be constructed outside the library, passed in, and then converted to binary (which would need to be owned by the library and provide a deleter function).