Общий способ описания данных для кросс-платформенной кросс-языковой системы - PullRequest
0 голосов
/ 24 декабря 2018

Каков наиболее общий способ описания данных ( без логики ), которые могут быть разделены между системами на разных платформах, в базах данных, все написаны на разных языках?

Мои выводына данный момент:

  1. JSON
    • Плюсы:
      • Реализация для большинства систем
      • Удобочитаемо для человека
      • Разумно быстро
    • Минусы:
      • Трудно увеличить (слишком много данных!)
      • Нет стандартного способа проверки семантики
      • Нет стандартного способаподарок для нетехнического пользователя
  2. XML
    • Плюсы:
      • Реализация для большинства систем
      • Читаемыедля человека
      • Легко проверить (схема)
      • Резонируемый, легко представить для нетехнического пользователя (XSLT)
    • Минусы:
      • Медленнее, чем JSON
      • Даже менее масштабируемое, чем JSON
  3. Плоские буферы
    • Плюсы:
      • удобстперевод в JSON (вы сохраняете все преимущества JSON)
      • Быстрое освещение!
      • Поддерживает некоторую степень отражения
      • Очень малая площадь для данных (особенно больших)
    • Минусы:
      • Не очень хорошая поддержка за пределами C ++
      • Нет преобразования в XML
      • Данные вообще не читаются (до преобразованияв JSON)

Что-нибудь еще?Я обновлю список, когда ответ придет сюда.

1 Ответ

0 голосов
/ 05 января 2019

Вы можете попробовать мой FastBinaryEncoding формат сериализации

FastBinaryEncoding
  • Proc:
    • Кроссплатформенность (Linux, OSX, Windows)
    • Генераторы для C ++, C #, Go, Java, JavaScript, Kotlin, Python, Ruby
    • Собственные структуры, классы и контейнеры для каждого языка
    • Поддержка всех распространенных типов данных, перечислений, флагов и коллекций
    • Вложение структур
    • Сверхбыстрыйдвоичная сериализация / десериализация
    • JSON-сериализация / десериализация
    • решение для управления версиями
    • отличная производительность
  • Минусы:
    • Данные не читаются человеком (до преобразования в JSON)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...