This would replace the _fromflatbuffers pure-Python infrastructure with an extension module that uses C++ Flatbuffers generated code, bound to Python with pybind11. Objects made in Python and the _toflatbuffers methods would not be affected, but properties providing data from a buffer would not cache in Python, but deliver from the fast C++ every time.
Having a C++ layer would also open the door to fast adding (in "fast," "strict," and maybe even "adjust" modes). Not all functionality would be ported to the C++ layer, only those that would stand the most from this optimization.
The base C++ classes should be separately defined (header-only?), so that they can be reused in other C++ projects.
This would replace the
_fromflatbuffers
pure-Python infrastructure with an extension module that uses C++ Flatbuffers generated code, bound to Python with pybind11. Objects made in Python and the_toflatbuffers
methods would not be affected, but properties providing data from a buffer would not cache in Python, but deliver from the fast C++ every time.Having a C++ layer would also open the door to fast adding (in "fast," "strict," and maybe even "adjust" modes). Not all functionality would be ported to the C++ layer, only those that would stand the most from this optimization.
The base C++ classes should be separately defined (header-only?), so that they can be reused in other C++ projects.