EmbeddedRPC / erpc

Embedded RPC
https://github.com/EmbeddedRPC/erpc/wiki
BSD 3-Clause "New" or "Revised" License
704 stars 202 forks source link

[QUESTION] #426

Open akpour opened 4 months ago

akpour commented 4 months ago

ERPC forward and backward compatibility

1- what if arguments are added/removed from the interfaces signature 2- what if argument types are added/removed 3- what if newer APIs are added, etc

Has backward and forward compatibility being properly thought about in ERPC?

amgross commented 4 months ago

Hi From what I know: Client shouldn't call server if their api are different, calling API that not exist in the server will cause server side to 'crash' ithout returning error to the client, calling API that changed most of the time will cause server crash but may lead also to calling the API with wrong parameters. But if some of the API are equal and some are different (due to API addition or change or whatever) still the equal API can be called, if the enum that representing them have same values in both sides. In general of course it is good practice not to use client and server from different generation, and if erpcgen executable/erpc code itself are different between server and client it should be checked carefully that none breaking change added to erpc between the versions.

amgross commented 3 months ago

@akpour if this answered you please close the issue