grpc-httpjson-transcoding icon indicating copy to clipboard operation
grpc-httpjson-transcoding copied to clipboard

This project is using internal-only protobuf APIs that may soon change namespaces or disappear.

Open haberman opened this issue 6 years ago • 5 comments

Hi there, I work on protobufs. I noticed your project is using APIs from google/protobuf/util/internal:

#include "google/protobuf/util/internal/json_stream_parser.h"
#include "google/protobuf/util/internal/object_writer.h"

https://github.com/grpc-ecosystem/grpc-httpjson-transcoding/blob/master/src/json_request_translator.cc#L23-L24

These APIs have "internal" in the include path, and are not for end-user consumption. We will likely be removing these soon, or at least changing their namespace to make it even clearer that these APIs are not for users.

This came to my attention because of this PR in our repo:

https://github.com/protocolbuffers/protobuf/pull/5939#issuecomment-524411767

haberman avatar Aug 26 '19 19:08 haberman

This repo was created many years ago (4, 5 years). It is used by Cloud Endpoint ESP and Envoy grpc transcoding filter. Please suggest a replacement before you change them into "internal".

qiwzhang avatar Aug 27 '19 17:08 qiwzhang

Yes, we should talk. Once I understand the requirements better I can suggest a replacement.

I want to clarify that these interfaces have always been internal, as evidenced by the fact that the files are in a directory called internal (see the #include lines I pasted above).

haberman avatar Aug 30 '19 01:08 haberman

Just wanted to leave a note here about what we discussed a few weeks back. I think you were going to look into your uses of these APIs and see if they could be removed. If not, you can use an old version of protobuf once newer versions remove the internal APIs.

haberman avatar Nov 11 '19 18:11 haberman

Yes, that is what we have been agreed upon.

qiwzhang avatar Nov 11 '19 18:11 qiwzhang

FYI protobuf version 22.0 finally removed these internal APIs. It looks like grpc-httpjson-transcoding never migrated off them. So this project will need to continue using protobuf <22.0 until it can migrate off those APIs.

haberman avatar May 12 '23 18:05 haberman