Поскольку я ненавижу изобретать колесо, мне интересно, есть ли какие-либо обычно используемые пакеты для выполнения простой работы по передаче (ключ, значение) пар данных между двумя конечными точками сети (вероятно, TCP / IP является наиболее вероятным носителем). Я хотел бы что-то, что работает в любой среде, что для меня означает API сокетов в стиле Unix / Linux, написанный на C или, возможно, C++. Java - это хорошо, но только Java затрудняет интеграцию в двоичные программы. C# и т. д. Отсутствует из-за необходимости переносимости на хосты Linux.
Есть такой зверь?





API-интерфейсы на уровне сокетов - это то, что вам нужно, если вам нужна полная переносимость. Я полагаю, что есть пакеты для каждого языка, которые могут правильно формировать биты в обоих направлениях, но я не знаю ни одного отдельного пакета, который был бы перенесен на все эти языки.
Рассмотрите возможность использования JSON? Существуют библиотеки для большинства языков программирования.
У Google есть формат обмена данными под названием Буферы протокола, который вы, возможно, захотите рассмотреть.
Это также выглядит хорошим кандидатом ... за исключением того, что, возможно, необходимость декларировать вещи является проблемой, если вы хотите создать общий конец приемника, который мультиплексирует данные в различные приемники. И вы не хотите каждый раз заново строить.
Я бы предположил, что буферы протокола намного эффективнее (или могут быть созданы), чем JSON или YAML.
Кто-нибудь может сказать, что это чрезмерная инженерия?
да. MSI слишком спроектирована. Corba слишком спроектирована. Буферов протокола нет.
Также есть кодирование. Вероятно, есть библиотеки (торрент-библиотеки), которые достаточно легко его проанализируют.
netstrings - старое решение, если вы хотите иметь минимальные накладные расходы.
Netstrings мне кажется странным. Этот парень написал небольшую статью, описывающую, как каждый программист на C передает строки, а затем утверждает, что они обеспечат безопасность сети? Я что-то упускаю?
Если вы знаете длину строки до того, как начнете ее обрабатывать, вы можете предотвратить одну серьезную уязвимость безопасности: переполнение буфера.
JSON легко декодировать практически на ЛЮБОМ языке ... даже если узел Linux просто сохраняет его, чтобы беспокоиться о чем-то другом. +1, хороший ответ.