Как мы можем использовать gRPC с Flatbuffers?

Я изучал Apache Thrift, ProtoBuf и Flatbuffers. Я нашел учебник по использованию gRPC с protobuf в ссылке но я не нахожу никакой документации для использования gRPC с Flatbuffers. Может кто-нибудь указать мне на соответствующие документы? Я проверил его в Google, а также в Stackoverflow. Любая помощь будет оценена.

2 ответов


протокол gRPC является агностиком полезной нагрузки, но генерация кода-нет. Поскольку для FlatBuffers уже нет генерации кода, вам нужно будет сделать некоторые вещи вручную.

детали меняют языком, но основные части подобны. В качестве примера, в Go вам нужно будет реализовать кодек и подготовьте дескрипторы, необходимые для Invoke, NewClientStream и RegisterService. В Java вы должны реализовать Маршаллер и подготовьте дескрипторы, необходимые для newCall и addService. Если у вас возникли проблемы, вы можете рассмотреть возможность просмотра сгенерированного кода для gRPC при использовании с Protobuf.


поскольку этот вопрос был впервые задан, был достигнут прогресс в a) создании gRPC codegen независимым от protobuf (см. https://github.com/grpc/grpc/pull/6130), а затем интегрировать этот codegenerator в компилятор flatbuffers flatc: https://github.com/google/flatbuffers/commit/48f37f9e0a04f2b60046dda7fef20a8b0ebc1a70

Это очень простая первая реализация, обратная связь приветствуется.