I am aware that Cord support landed, which is very welcome. But it is quite limited since only singular bytes fields can be Cord. It is also limited in that the Cord fields will not alias the input, unless that input is also a Cord.
As an example of why this is limiting, consider a message that minimally frames other messages, where it is desirable to parse the inner messages one at a time, with aliasing/without copying, and where it is undesirable or impossible to copy the input. This would be done like:
message outer {
repeated bytes inner = 1 [ctype=CORD];
}
... but this is impossible today, since Cord fields cannot be repeated, despite the tantalizing fact that RepeatedField is specialized for Cord. Ideally, what users really want here is repeated string_view, not Cord, because Cord has so much baggage (cordz etc) and often the inputs are string_view anyway, and constructing the initial Cord is just a waste of time in that case.
Today I support a codebase that refuses to use upstream protobuf because some grouchy, unreformed C programmers claim that it copies too much and is therefore too slow. The irritating part of the situation is: they are right. So I maintain a complete, private protobuf codec internally that is more efficient overall, but which never gets the benefit of upstream performance and feature work like tables, epsinput, etc.
Other than mentioning that I want it, I am not sure if there is anything I can do to bring string_view support to the open-source side of the project. If there is anything I can do, please mention it.
-jwb