Почему не thrift?
У нас thrift использовался, например. Вполне живой же. Пишут, что лучше. Или неправду пишут?
Кодогенерация нужна?