Как тема, я хочу использовать функции trift rpc, а с protobuf для сериализации, есть ли какой-нибудь проект, который это сделал? Причина, по которой я не хочу использовать сериализацию бережливости, - это после того, как я вижу в сгенерированных файлах cpp, я обнаружил, что у нее нет функций _in_place, что означает, что она должна копировать конструкцию каждого члена, в то время как для моего случая у меня есть все char * и т. д. alreadly выделяют else где.Могу ли я использовать trift rpc вместе с protobuf вместе
2
A
ответ
2
Единственный способ, которым вы можете это сделать, - объявить сообщение Thrift, содержащее большой байтовый блок, который вы, в свою очередь, разбираете как Protobuf. Но для этого потребуется дополнительная копия, которая побеждает вашу цель.
Обратите внимание, что Google только что выпустил GRPC, протокол RPC для Protobufs. Если вы начинаете новый проект и хотите использовать Protobuf RPC, используйте это.
Вы также можете быть заинтересованы в Cap'n Proto, сериализации и RPC-системе, которая специализируется на предотвращении копирования.
(Раскрытие информации: Я являюсь автором Cap'n Proto, а также большинство с открытым исходным кодом Protobuf кода Google, но я не имею ничего общего с КПГРАМИ.)
Смежные вопросы
- 1. Могу ли я использовать bootstrap 3 вместе с jQuery Mobile?
- 2. Могу ли я использовать mysql_real_escape_string вместе с strip_tags?
- 3. Могу ли я использовать ConcurrentMap вместе с моим собственным кешем?
- 4. Могу ли я использовать enable_if вместе с typedef?
- 5. Могу ли я использовать .delay() вместе с .animate() в jQuery?
- 6. Создания GWT RPC играть вместе с Guice
- 7. Могу ли я использовать Cloud hosting и CDN вместе?
- 8. Могу ли я использовать Proxifier и Fiddler вместе?
- 9. Могу ли я использовать jxls и apache poi вместе?
- 10. Могу ли я использовать Eclipse и GlassFish вместе?
- 11. Rails: могу ли я использовать elasticsearch-model и active_model_serializers вместе?
- 12. RPC-модель и Xdebug работают вместе?
- 13. Могу ли я использовать Pure AspectJ и Spring AOP вместе?
- 14. Могу ли я использовать ярлык $ и jQuery вместе?
- 15. Могу ли я использовать эти функции PHP вместе?
- 16. Могу ли я использовать ng-click и onclick вместе
- 17. Могу ли я использовать 'res.sendFile' и 'res.json' вместе?
- 18. Могу ли я использовать угловые 2 и Тимелеафы вместе?
- 19. Могу ли я использовать CLucene и Cue Sheet Parser вместе?
- 20. Могу ли я использовать SOAP Webservices и Spring MVC вместе
- 21. Как я могу и вместе?
- 22. Как я могу использовать Mac IOS Simulator вместе с Smartface
- 23. Как я могу использовать обещания Q вместе с MongoDB cursor.each()?
- 24. Как я могу использовать ORMLite с SQLCipher вместе в Android?
- 25. Как я могу использовать TurboMail 3 вместе с TurboGears 2
- 26. Как я могу использовать ptiPython с Flask-Script вместе?
- 27. Как я могу использовать Clojure REPL вместе с Qt Jambi?
- 28. Как я могу использовать «nx.draw()» вместе с «nx.topological_sort()»
- 29. Должен ли я использовать DoctrineBundle вместе с DoctrineMongoDBBundle?
- 30. Можно ли использовать @XmlHeader вместе с Джексоном?
Посмотрите на сгенерированный код и вы быстро увидим, что это миссия «невозможна», или, по крайней мере, миссия «звучит как большая работа, которую вы не хотите делать». Конечно, вы могли бы написать свой собственный транспорт Thrift, но тогда вам также придется переписать генератор кода, чтобы иметь сгенерированный код, который правильно обрабатывает объекты данных, отличных от Thrift. И, вероятно, некоторые другие части библиотеки. И убедитесь, что вы измеряете чистую прибыль от всех этих работ. – JensG