Мне нужен стандартный пакет для перемещения пар ключ-значение по сетевому соединению: какие-нибудь советы?

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

Есть такой зверь?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
189
5

Ответы 5

API-интерфейсы на уровне сокетов - это то, что вам нужно, если вам нужна полная переносимость. Я полагаю, что есть пакеты для каждого языка, которые могут правильно формировать биты в обоих направлениях, но я не знаю ни одного отдельного пакета, который был бы перенесен на все эти языки.

Рассмотрите возможность использования JSON? Существуют библиотеки для большинства языков программирования.

JSON легко декодировать практически на ЛЮБОМ языке ... даже если узел Linux просто сохраняет его, чтобы беспокоиться о чем-то другом. +1, хороший ответ.

Tim Post 27.02.2009 18:41

У Google есть формат обмена данными под названием Буферы протокола, который вы, возможно, захотите рассмотреть.

Это также выглядит хорошим кандидатом ... за исключением того, что, возможно, необходимость декларировать вещи является проблемой, если вы хотите создать общий конец приемника, который мультиплексирует данные в различные приемники. И вы не хотите каждый раз заново строить.

jakobengblom2 29.10.2008 10:32

Я бы предположил, что буферы протокола намного эффективнее (или могут быть созданы), чем JSON или YAML.

JesperE 29.10.2008 12:42

Кто-нибудь может сказать, что это чрезмерная инженерия?

Frank Krueger 27.02.2009 19:43

да. MSI слишком спроектирована. Corba слишком спроектирована. Буферов протокола нет.

JesperE 27.02.2009 23:00

Также есть кодирование. Вероятно, есть библиотеки (торрент-библиотеки), которые достаточно легко его проанализируют.

netstrings - старое решение, если вы хотите иметь минимальные накладные расходы.

Netstrings мне кажется странным. Этот парень написал небольшую статью, описывающую, как каждый программист на C передает строки, а затем утверждает, что они обеспечат безопасность сети? Я что-то упускаю?

Frank Krueger 27.02.2009 19:40

Если вы знаете длину строки до того, как начнете ее обрабатывать, вы можете предотвратить одну серьезную уязвимость безопасности: переполнение буфера.

Martin Redmond 27.02.2009 21:03

Другие вопросы по теме