Проекты‎ > ‎

USDS

Документация

Последняя опубликованная версия стандарта: недоступно
Версия в разработке: USDS 1.0*
Предыдущие версии стандарта: недоступно
Будет добавлено в новых версиях: ToDo

Программное обеспечение

USDS Basic parser - простейший парсер для работы с документами USDS, не требует использования дополнительного ПО
USDS Creator - утилита для генерации SAX и DOM парсеров, обеспечивает максимальную производительность
USDS Converter - утилита для конвертации между USDS и форматами XML и JSON
USDS Editor - редактор документов USDS с GUI

Тесты производительности парсеров предоставлены здесь.

Весь список ПО для загрузки: Downloads
Исходный код: https://github.com/IT-DC/USDS

Что такое USDS?

USDS (или $S) - Universal serialized data structures - универсальные сериализованные структуры данных, бинарный формат, способный полностью заменить XML и JSON. Основные отличия:

  • Вместо текстовых тегов/ключей используются целые числа. Соотношение "Имя" - "Целочисленный идентификатор" задается отдельно, в "Словаре". Словарь может быть прикреплен к документу USDS или может быть передан отдельно.
  • Нет закрывающих тегов, как в XML;
  • Документы USDS формируются строго по схеме, которая также задается в Словаре. Поддерживаются полиморфизм и опциональные поля.
  • Числовые значения в документе USDS хранятся в бинарном виде (не как текст).
С описанием формата вы можете ознакомиться в разделе: USDS 1.0*

Зачем нужен USDS, если есть JSON, BSON, XML, Protobuf и ASN.1?

В первую очередь USDS компактнее и быстрее большинства других форматов, смотрите Тесты производительности. Это положительно скажется на серверном оборудовании.

Бинарные документы USDS "человекочитаемые", в отличие от большинства бинарных форматов (USDS Editor).

USDS существенно упрощает разработку API:

Сравнение с другими форматами:


USDS лучше, чем JSON, BSON и XML, т.к.:
  • он как минимум в 2 раза компактнее и значительно быстрее в машинной обработке, что актуально для серверного ПО;
  • имеются встроенные средства для работы с несколькими версиями схемы данных;
  • документы USDS всегда строятся по заданной схеме данных, это снижает количество ошибок при разработке.
USDS не хуже, чем JSON, BSON и XML, т.к.:
  • есть возможность обращаться к данным по их текстовым именам, даже если схема документа заранее не известна.

USDS лучше чем Protobuf, т.к.:
  • поддерживается полиморфизм (по сравнению c Protobuf 2.x. В Protobuf 3 добавлен тип данных ANY);
  • имеются встроенные средства для работы с несколькими версиями схемы данных;
  • есть возможность обращаться к данным по их текстовым именам, даже если схема документа заранее не известна;
  • компактнее чем Protobuf примерно на 10%.
USDS не хуже чем Protobuf, т.к.:
  • предусмотрен такой же простой механизм интеграции стандарта с существующими и новыми проектами;
  • сопоставимы скорости парсеров.

USDS лучше чем ASN.1, т.к.:
  • USDS - открытый формат с возможностью бесплатного использования в коммерческих проектах;
  • обращаться к данным по их текстовым именам в ASN.1 можно только при использовании XER, при этом ASN.1 превращается в обычный XML со всеми вытекающими недостатками;
  • имеются встроенные средства для работы с несколькими версиями схемы данных.
USDS не хуже чем ASN.1, т.к.:
  • предусмотрен такой же простой механизм интеграции стандарта с существующими и новыми проектами;
  • оба формата поддерживают полиморфизм и опциональные поля.

Текстовые форматы XML и JSON лучше, т.к. они человекочитаемые

Для чтения XML и JSON вы используете специализированное ПО - текстовые редакторы. Более того, вы предпочитаете редакторы с подсветкой синтаксиса и автоматическим форматированием документов XML и JSON, текстовые форматы не поступают непосредственно в ваш мозг из памяти компьютера.

Формат USDS также "человекочитаем" с помощью специализированного редактора USDS Editor. Также вы также можете выполнить конвертацию USDS в форматы XML и JSON (и обратно) с помощью USDS Converter. Эту же конвертацию поддерживает USDS Basic parser.

Бинарные форматы гораздо сложнее текстовых

Как пользователь библиотек USDS вы не почувствуете разницы с текстовыми форматами. Вам не требуется знать, как устроена бинарная структура USDS для построения документов: Примеры использования USDS Basic Parser. При отладке ПО вам не потребуется разбирать бинарные файлы USDS, для их просмотра есть графический редактор USDS Editor.

Как это использовать?

Скачайте USDS Basic parser и ознакомьтесь с разделом Примеры использования USDS Basic Parser.

Для просмотра созданных бинарных документов используйте USDS Editor

Какие языки программирования поддерживаются?

Список поддерживаемых на данный момент языков и платформ указан здесь: USDS Basic parser

Запланирована поддержка следующих языков программирования:

  • C/C++
  • C#
  • Java
  • JavaScript
  • Objective C
  • Perl
  • PHP
  • Python
  • Visual Basic

Если вы не нашли своего языка в списке, вы можете воспользоваться динамическими библиотеками USDS Basic Parser (.dll .so).

Где это можно использовать?

Вы можете использовать USDS везде, где сейчас используете XML, JSON и другие форматы.

Вы можете использовать USDS в качестве конфигурационных файлов. Файлы USDS легче редактировать вручную, чем XML (с помощью специализированных редакторов).

Вы можете использовать USDS для обмена данными по сети. Для сокращения сетевого трафика вы можете однократно передать Словарь и все заголовки документа USDS, и далее обмениваться только данными. Если оба ваших приложения уже скомпилированы с использованием одного Словаря, то при установке соединения достаточно передать заголовок USDS документа, который содержит идентификатор Словаря и его версию.

Comments

Не удалось найти URL спецификации гаджета