rhasspy / wyoming

Peer-to-peer protocol for voice assistants
MIT License
103 stars 17 forks source link

Consider defining protocol in an IDL #19

Open skewballfox opened 2 months ago

skewballfox commented 2 months ago

Hey cool project. Something that might be worth considering is defining the RPCs in an IDL. The primary advantage is the generation of client and server functions (in multiple languages), which also makes versioning easier in the event of breaking changes. The secondary advantage is implementers looking to use the protocol can easily see the functions messages and formats (and from that the capabilities), that they need to support if they want to make use of the protocol.

Here's the options I know of:

There are code generator projects for each, and I think with at least one you could generate the exact same (request, response) pairs of json message you are currently using, to avoid changing current downstream clients.

skewballfox commented 2 months ago

completely missed the yaml files under wyoming/conf/http my bad.