nestjs / nest

A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications with TypeScript/JavaScript 🚀
https://nestjs.com
MIT License
67.29k stars 7.59k forks source link

Consume FileDescriptorSet rather than .proto files #8475

Closed pcj closed 2 years ago

pcj commented 2 years ago

Is there an existing issue that is already proposing this?

Is your feature request related to a problem? Please describe it

Apologies I don't know much about nestjs per se, but I understand from the documentation (https://docs.nestjs.com/microservices/grpc#overview) that a nestjs app requires the actual proto files at runtime.

This should not be technically necessary, because a FileDescriptorSet contains all the information that a proto file does. These binary raw proto files are often concatenated together to form a single file that contains all the transitive proto information. This is important for certain build system such as bazel.

So I'm curious if this is an option (to use a single descriptor set file) rather than the actual proto files. Maybe this is a limitation of protobufjs rather than nestjs?

Describe the solution you'd like

To give a nestjs app a proto descriptor set file rather than need the raw proto files.

Teachability, documentation, adoption, migration strategy

Can provide more details later.

What is the motivation / use case for changing the behavior?

Build system integration.

jmcdo29 commented 2 years ago

Most of the integrations Nest provides are really thin wrappers, so I would definitely first check if this is something protobufjs allows. If so, we can figure out what kind of update we would need to make on our end if this is something we want to allow

kamilmysliwiec commented 2 years ago

Thanks for your suggestion!

There are no plans to implement this in the foreseeable future.

If you think your request could live outside Nest's scope (custom transport strategy), we'd encourage you to collaborate with the community on publishing it as an open source package.