While we already have some lower level interfaces to RNA (RNA_property_collection_raw_set),
an intermediate array is still needed.
This proposal is to have the ability to expose the RNA arrays as a buffer with an optional stride.
This can be used by Cycles to copy geometry directly, and by Python for accessing pixels for example.
Note that the length of the array is set by the RNA API which also sets the stride and data format, so this is safer than simply exposing raw pointers.
The C++ API can have a similar interface to The python buffers.
For the initial version of this we could have it read-only, to test it out and avoid developers bypassing RNA and writing bad data into the array.
Later on we can investigate making it writable too.
See conversation on this topic