secretsauceai / voice-assistant-protocol

A bus for voice assistants, including benchmarks.
BSD 3-Clause "New" or "Revised" License
5 stars 1 forks source link

Open to making a gRPC version? #47

Open skewballfox opened 2 years ago

skewballfox commented 2 years ago

gRPC is a bit higher up the stack than CoAP, it's an application layer protocol that defines the messages being sent between clients and servers in a language agnostic way. While most of the projects and documentation show grpc being used with TCP it's not tied to it. I actually used it in one of my projects with a unix domain socket, and It seems at least one IoT company is using grpc and CoAp together.

The benefits being:

lastly if someone wants to use something other than gRPC, they can still refer to the .proto files to see the structure and contents of the messages, in order to match the behavior. The server won't likely be (as) resource constrained, and can have multiple listeners, and as long as the message fields match after decoding, you would only need to define how to handle them server side, not how to process them.

the .proto files should probably be stored in a separate repository, primarily because they are generally added as submodules/subtrees in client server implementations. Also I can write these, I used them recently in another project, and feel comfortable enough with the proto language.