This project is nice, but it does two things at the same time:
- Generate classes / interfaces to implement defined service / methods.
- Implements transport, channels, server and client, error handling, framing, etc.
I think these two things should be decoupled, so alternative implementations of 2) can be used without changing 1). Using 2) forces ones to use a specific implementation details, i.e. logging, configuration, threading and memory management model, overload protection methods on server, load balancing methods on client, use other hunt dependencies, etc.