Сравнение форматов сериализации данных
Это сравнение сериализации данных форматов , различных способов преобразования сложных объектов в последовательности битов . Он не включает языки разметки, используемые исключительно в качестве форматов файлов документов .
Обзор
[ редактировать ]Имя | Создатель-сопровождающий | На основе | Стандартизированный? [ необходимо определение ] | Спецификация | Двоичный ? | Человекочитаемый ? | Поддерживает ссылки ? и | Схема- IDL ? | Стандартные API | Поддерживает нулевого копирования операции |
---|---|---|---|---|---|---|---|---|---|---|
Апач Авро | Фонд программного обеспечения Apache | — | Нет | Спецификация Apache Avro™ | Да | Частичный г | — | Встроенный | C, C#, C++, Java, PHP, Python, Ruby | — |
Апач Паркет | Фонд программного обеспечения Apache | — | Нет | Апач Паркет | Да | Нет | Нет | — | Ява, Питон, С++ | Нет |
Апач бережливый | Фейсбук (создатель) Апач (сопровождающий) |
— | Нет | Оригинальный технический документ | Да | Частичный с | Нет | Встроенный | C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml, Delphi и другие языки. [1] | — |
АСН.1 | ИСО , МЭК , МСЭ-Т | — | Да | Серии ISO/IEC 8824/ITU-T X.680 (синтаксис) и ISO/IEC 8825/ITU-T X.690 (правила кодирования). X.680, X.681 и X.683 определяют синтаксис и семантику. | BER , DER , PER , OER или по индивидуальному заказу через ECN | XER , JER , GSER или по индивидуальному заказу через ECN | Да ж | Встроенный | — | О |
Бенкоде | Брэм Коэн (создатель) BitTorrent, Inc. (сопровождающий) |
— | Фактически БЭП , | Часть спецификации протокола BitTorrent. | За исключением чисел и разделителей, это ASCII. | Нет | Нет | Нет | Нет | Нет |
БСОН | МонгоБД | JSON | Нет | Спецификация БСОН | Да | Нет | Нет | Нет | Нет | Нет |
Капитан Прото | Кентон Варда | — | Нет | Спецификация кодирования Cap'n Proto | Да | Частичный час | Нет | Да | Нет | Да |
КБОР | Карстен Борман, П. Хоффман | Пакет сообщений [2] | Да | RFC 8949 | Да | Нет | Да, через тегирование |
CDDL | ФИДО2 | Нет |
Значения, разделенные запятыми (CSV) | Автор RFC: Yakov Shafranovich |
— | Множество неформальных вариантов | RFC 4180 (среди прочих) |
Нет | Да | Нет | Нет | Нет | Нет |
Общее представление данных (CDR) | Группа управления объектами | — | Да | Общий протокол Inter-ORB | Да | Нет | Да | Да | Ада, C, C++, Java, Кобол, Лисп, Python, Ruby, Smalltalk | — |
D-Bus Протокол сообщений | freedesktop.org | — | Да | Спецификация D-шины | Да | Нет | Нет | Частичный (строки подписи) |
Да | — |
Эффективный обмен XML (EXI) | W3C | XML , эффективный XML | Да | Формат эффективного обмена XML (EXI) 1.0 | Да | XML | XPointer , XPath | XML-схема | DOM , SAX , StAX , XQuery , XPath | — |
Расширяемая нотация данных (edn) | Рич Хики / сообщество Clojure | Кложур | Да | Официальная спецификация edn | Нет | Да | Нет | Нет | Clojure, Ruby, Go, C++, Javascript, Java, CLR, ObjC, Python [3] | Нет |
Плоские буферы | — | Нет | Плоские буферы GitHub | Да | Апач Стрела | Частичный (внутри буфера) |
Да | C++, Java, C#, Go, Python, Rust, JavaScript, PHP, C, Dart, Lua, TypeScript | Да | |
Быстрый информационный набор | ИСО , МЭК , МСЭ-Т | XML | Да | МСЭ-Т X.891 и ISO/IEC 24824-1:2007. | Да | Нет | XPointer , XPath | XML-схема | DOM , SAX , XQuery , XPath | — |
МУЖЧИНА | Уровень здоровья 7 | REST Основы | Да | Ресурсы по быстрой совместимости в здравоохранении | Да | Да | Да | Да | Хапи для FIR [4] JSON , XML , Черепаха | Нет |
Ион | Амазонка | JSON | Нет | Спецификация Amazon Ion | Да | Да | Нет | Ионная схема | C, C#, Go, Java, JavaScript, Python, Rust | — |
Java Сериализация | Корпорация Oracle | — | Да | Сериализация объектов Java | Да | Нет | Да | Нет | Да | — |
JSON | Дуглас Крокфорд | Синтаксис JavaScript | Да | СТД 90 /RFC 8259 (вспомогательное: РФК 6901, RFC 6902), ECMA-404 , ISO/IEC 21778:2017. |
Нет, но см. BSON , Smile , UBJSON | Да | JSON Pointer (RFC 6901) или, альтернативно, JSONPath , JPath , JSPON , json:select() ; и JSON-LD | Частичный ( Предложение схемы JSON , ASN.1 с JER , Kwalify. Архивировано 12 августа 2021 г. в Wayback Machine , Rx , JSON-LD. |
Частичный ( Кларнет , JSONQuery / RQL , JSONPath ), JSON-LD |
Нет |
Пакет сообщений | Садаюки Фурухаси | JSON (примерно) | Нет | Спецификация формата MessagePack | Да | Нет | Нет | Нет | Нет | Да |
Чистые строки | Дэн Бернштейн | — | Нет | netstrings.txt | Кроме разделителей ASCII | Да | Нет | Нет | Нет | Да |
ОГДЛ | Рольф Вин | ? | Нет | Спецификация | Двоичная спецификация | Да | Спецификация пути | Расписание ВД | — | |
OPC-UA Бинарный | Фонд ОПК | — | Нет | opcfoundation.org | Да | Нет | Да | Нет | Нет | — |
ОпенДДЛ | Эрик поляк | С , PHP | Нет | OpenDDL.org | Нет | Да | Да | Нет | библиотека OpenDDL | — |
Формат сериализации PHP | PHP-группа | — | Да | Нет | Да | Да | Да | Нет | Да | — |
Пикль (Питон) | Гвидо ван Россум | Питон | На самом деле ПДЛ , | PEP 3154 – Протокол Pickle версии 4 | Да | Нет | Да [5] | Нет | Да | Нет |
Список недвижимости | NeXT (создатель) Apple (сопровождающий) |
? | Частичный | Общедоступное DTD для формата XML | Да а | Да б | Нет | ? | Какао , CoreFoundation , OpenStep , GnuStep | Нет |
Буферы протоколов (protobuf) | — | Нет | Руководство разработчика: Кодировка , спецификация proto2 и спецификация proto3 | Да | Да д | Нет | Встроенный | C++, Java, C#, Python, Go, Ruby, Objective-C, C, Dart, Perl, PHP, R, Rust, Scala, Swift, Julia, Erlang, D, Haskell, ActionScript, Delphi, Elixir, Elm, Erlang, GopherJS, Haskell, Haxe, JavaScript, Kotlin, Lua, Matlab, Mercurt, OCaml, Prolog, Solidity, Typescript, Vala, Visual Basic | Нет | |
S-выражения | Джон Маккарти (оригинал) Рон Ривест (интернет-проект) |
Лисп , сетевые строки | Во многом де-факто | "S-Expressions". Архивировано 7 октября 2013 г. на Wayback Machine. интернет-проекте | Да, каноническое представление | Да, расширенное транспортное представительство | Нет | Нет | — | |
Улыбка | Тату Салоранта | JSON | Нет | Спецификация формата улыбки | Да | Нет | Да | Частичный ( Предложение схемы JSON , другие схемы/IDL JSON) |
Частичный (через API-интерфейсы JSON, реализованные с помощью бэкэнда Smile, на Джексоне, Python) |
— |
МЫЛО | W3C | XML | Да | Рекомендации W3C : МЫЛО/1.1 МЫЛО/1.2 |
Частичный ( Эффективный обмен XML , двоичный XML , быстрый информационный набор , MTOM , данные XSD base64 ) |
Да | Встроенный идентификатор/ссылка, XPointer , XPath | WSDL , схема XML | DOM , SAX , XQuery , XPath | — |
Форматы обмена структурированными данными | Макс Вильдгрубе | — | Да | RFC 3072 | Да | Нет | Нет | Нет | — | |
УБЖСОН | Базз Медиа, ООО | JSON , БСОН | Нет | ubjson.org | Да | Нет | Нет | Нет | Нет | — |
Внешнее представление данных (XDR) | Sun Microsystems (создатель) IETF (сопровождающий) |
— | Да | СТД 67 /RFC 4506 | Да | Нет | Да | Да | Да | — |
XML | W3C | СГМЛ | Да | Рекомендации W3C : 1.0 (пятое издание) 1.1 (второе издание) |
Частичный ( Эффективный обмен XML , двоичный XML , быстрый информационный набор , данные XSD base64 ) |
Да | XPointer , XPath | XML-схема , РАССЛАБЬТЕСЬ | DOM , SAX , XQuery , XPath | — |
XML-RPC | Дэйв Винер [6] | XML | Нет | Спецификация XML-RPC | Нет | Да | Нет | Нет | Нет | Нет |
ЯМЛ | Кларк Эванс, Инги дот Нет, и Орен Бен-Кики |
C , Java , Perl , Python , Ruby , электронная почта , HTML , MIME , URI , XML , SAX , SOAP , JSON [7] | Нет | Версия 1.2 | Нет | Да | Да | Частичный ( Kwalify. Архивировано 12 августа 2021 г. на Wayback Machine , Rx , встроенные определения типов языка) |
Нет | Нет |
Имя | Создатель-сопровождающий | На основе | Стандартизированный? | Спецификация | Двоичный ? | Человекочитаемый ? | Поддерживает ссылки ? и | Схема- IDL ? | Стандартные API | Поддерживает нулевого копирования операции |
- ^ Текущий формат по умолчанию — двоичный.
- ^ «Классический» формат — это обычный текст, также поддерживается формат XML.
- ^ Теоретически возможно из-за абстракции, но реализация не включена.
- ^ Основной формат — двоичный, но доступны текстовые форматы и форматы JSON. [8] [9]
- ^ Означает, что универсальные инструменты/библиотеки знают, как кодировать, декодировать и разыменовывать ссылку на другую часть данных в том же документе. Инструменту может потребоваться файл IDL , но не более того. Исключает пользовательские, нестандартизированные методы ссылок.
- ^ ASN.1 имеет X.681 (система информационных объектов), X.682 (ограничения) и X.683 (параметризация), которые позволяют точно определять открытые типы, где типы значений могут быть идентифицированы целыми числами и OID. и т. д. OID — это стандартный формат глобальных уникальных идентификаторов, а также стандартная нотация («абсолютная ссылка») для ссылки на компонент значения. Например, PKIX использует такую нотацию в RFC 5912. С помощью такой нотации (ограничения на параметризованные типы с использованием наборов информационных объектов) общие инструменты/библиотеки ASN.1 могут автоматически кодировать/декодировать/разрешать ссылки внутри документа.
- ^ Основной формат — двоичный, доступен кодировщик json. [10]
- ^ Основной формат — двоичный, но доступен текстовый формат.
Сравнение синтаксиса удобочитаемых форматов
[ редактировать ]Формат | Нулевой | Логическое значение true | Логическое значение ложь | Целое число | Плавающая точка | Нить | Множество | Ассоциативный массив / Объект |
---|---|---|---|---|---|---|---|---|
АСН.1 (Правила кодирования XML) |
<foo />
|
<foo>true</foo>
|
<foo>false</foo>
|
<foo>685230</foo>
|
<foo>6.8523015e+5</foo>
|
<foo>A to Z</foo>
|
<SeqOfUnrelatedDatatypes>
<isMarried>true</isMarried>
<hobby />
<velocity>-42.1e7</velocity>
<bookname>A to Z</bookname>
<bookname>We said, "no".</bookname>
</SeqOfUnrelatedDatatypes>
|
Объект (ключ — имя поля):
<person>
<isMarried>true</isMarried>
<hobby />
<height>1.85</height>
<name>Bob Peterson</name>
</person>
Сопоставление данных (ключ — значение данных): <competition>
<measurement>
<name>John</name>
<height>3.14</height>
</measurement>
<measurement>
<name>Jane</name>
<height>2.718</height>
</measurement>
</competition>
|
CSV-файл б | null а (или пустой элемент в строке) а |
1 а true а
|
0 а false а
|
685230 -685230 а
|
6.8523015e+5 а
|
A to Z "We said, ""no""."
|
true,,-42.1e7,"A to Z"
|
42,1 A to Z,1,2,3 |
Эдн | nil
|
true
|
false
|
685230 -685230
|
6.8523015e+5
|
"A to Z" , "A \"up to\" Z"
|
[true nil -42.1e7 "A to Z"]
|
{:kw 1, "42" true, "A to Z" [1 2 3]}
|
Формат | Нулевой | Логическое значение true | Логическое значение ложь | Целое число | Плавающая точка | Нить | Множество | Ассоциативный массив / Объект |
Ион |
|
true
|
false
|
685230 -685230 0xA74AE 0b111010010101110
|
6.8523015e5
|
"A to Z" '''
|
[true, null, -42.1e7, "A to Z"]
|
{'42': true, 'A to Z': [1, 2, 3]}
|
Чистые строки с | 0:, а 4:null, а
|
1:1, а 4:true, а
|
1:0, а 5:false, а
|
6:685230, а
|
9:6.8523e+5, а
|
6:A to Z,
|
29:4:true,0:,7:-42.1e7,6:A to Z,,
|
41:9:2:42,1:1,,25:6:A to Z,12:1:1,1:2,1:3,,,, а
|
JSON | null
|
true
|
false
|
685230 -685230
|
6.8523015e+5
|
"A to Z"
|
[true, null, -42.1e7, "A to Z"]
|
{"42": true, "A to Z": [1, 2, 3]}
|
ОГДЛ [ нужна проверка ] | null а
|
true а
|
false а
|
685230 а
|
6.8523015e+5 а
|
"A to Z" 'A to Z' NoSpaces
|
true null -42.1e7 "A to Z"
|
42 true "A to Z" 1 2 3 42 true "A to Z", (1, 2, 3) |
Формат | Нулевой | Логическое значение true | Логическое значение ложь | Целое число | Плавающая точка | Нить | Множество | Ассоциативный массив / Объект |
ОпенДДЛ | ref {null}
|
bool {true}
|
bool {false}
|
int32 {685230} int32 {0x74AE} int32 {0b111010010101110}
|
float {6.8523015e+5}
|
string {"A to Z"}
|
Однородный массив:
int32 {1, 2, 3, 4, 5} Гетерогенный массив: array { bool {true} ref {null} float {-42.1e7} string {"A to Z"} } |
dict { value (key = "42") {bool {true}} value (key = "A to Z") {int32 {1, 2, 3}} } |
Формат сериализации PHP | N;
|
b:1;
|
b:0;
|
i:685230; i:-685230;
|
d:685230.15; д d:INF; d:-INF; d:NAN;
|
s:6:"A to Z";
|
a:4:{i:0;b:1;i:1;N;i:2;d:-421000000;i:3;s:6:"A to Z";}
|
Ассоциативный массив: a:2:{i:42;b:1;s:6:"A to Z";a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}} Объект: O:8:"stdClass":2:{s:4:"John";d:3.14;s:4:"Jane";d:2.718;} д
|
Пикль (Питон) | N.
|
I01\n.
|
I00\n.
|
I685230\n.
|
F685230.15\n.
|
S'A to Z'\n.
|
(lI01\na(laF-421000000.0\naS'A to Z'\na.
|
(dI42\nI01\nsS'A to Z'\n(lI1\naI2\naI3\nas.
|
Список недвижимости (обычный текстовый формат) [11] |
— | <*BY>
|
<*BN>
|
<*I685230>
|
<*R6.8523015e+5>
|
"A to Z"
|
( <*BY>, <*R-42.1e7>, "A to Z" )
|
{ "42" = <*BY>; "A to Z" = ( <*I1>, <*I2>, <*I3> ); } |
Список недвижимости (формат XML) [12] |
— | <true />
|
<false />
|
<integer>685230</integer>
|
<real>6.8523015e+5</real>
|
<string>A to Z</string>
|
<array>
<true />
<real>-42.1e7</real>
<string>A to Z</string>
</array>
|
<dict>
<key>42</key>
<true />
<key>A to Z</key>
<array>
<integer>1</integer>
<integer>2</integer>
<integer>3</integer>
</array>
</dict>
|
Буферы протоколов | — | true
|
false
|
685230 -685230
|
20.0855369
|
"A to Z"
|
field1: "value1" field1: "value2" field1: "value3 anotherfield { foo: 123 bar: 456 } anotherfield { foo: 222 bar: 333 } |
thing1: "blahblah"
thing2: 18923743
thing3: -44
thing4 {
submessage_field1: "foo"
submessage_field2: false
}
enumeratedThing: SomeEnumeratedValue
thing5: 123.456
[extensionFieldFoo]: "etc"
[extensionFieldThatIsAnEnum]: EnumValue
|
Формат | Нулевой | Логическое значение true | Логическое значение ложь | Целое число | Плавающая точка | Нить | Множество | Ассоциативный массив / Объект |
S-выражения | NIL nil
|
T #t ж true
|
NIL #f ж false
|
685230
|
6.8523015e+5
|
abc "abc" #616263# 3:abc {MzphYmM=} |YWJj|
|
(T NIL -42.1e7 "A to Z")
|
((42 T) ("A to Z" (1 2 3)))
|
ЯМЛ | ~ null Null NULL [13]
|
y Y yes Yes YES on On ON true True TRUE [14]
|
n N no No NO off Off OFF false False FALSE [14]
|
685230 +685_230 -685230 02472256 0x_0A_74_AE 0b1010_0111_0100_1010_1110 190:20:30 [15]
|
6.8523015e+5 685.230_15e+03 685_230.15 190:20:30.15 .inf -.inf .Inf .INF .NaN .nan .NAN [16]
|
A to Z "A to Z" 'A to Z'
|
[y, ~, -42.1e7, "A to Z"]
- y - - -42.1e7 - A to Z |
{"John":3.14, "Jane":2.718}
42: y A to Z: [1, 2, 3] |
XML и и мыло | <null /> а
|
true
|
false
|
685230
|
6.8523015e+5
|
A to Z
|
<item>true</item>
<item xsi:nil="true"/>
<item>-42.1e7</item>
<item>A to Z<item>
|
<map>
<entry key="42">true</entry>
<entry key="A to Z">
<item val="1"/>
<item val="2"/>
<item val="3"/>
</entry>
</map>
|
XML-RPC | <value><boolean>1</boolean></value>
|
<value><boolean>0</boolean></value>
|
<value><int>685230</int></value>
|
<value><double>6.8523015e+5</double></value>
|
<value><string>A to Z</string></value>
|
<value><array>
<data>
<value><boolean>1</boolean></value>
<value><double>-42.1e7</double></value>
<value><string>A to Z</string></value>
</data>
</array></value>
|
<value><struct>
<member>
<name>42</name>
<value><boolean>1</boolean></value>
</member>
<member>
<name>A to Z</name>
<value>
<array>
<data>
<value><int>1</int></value>
<value><int>2</int></value>
<value><int>3</int></value>
</data>
</array>
</value>
</member>
</struct>
|
- ^ Пропущенные элементы XML обычно декодируются инструментами привязки данных XML как NULL. Здесь показана другая возможная кодировка; Схема XML не определяет кодировку для этого типа данных.
- ^ Спецификация RFC CSV касается только разделителей, символов новой строки и кавычек; он не имеет прямого отношения к сериализации структур данных программирования .
- ^ Спецификация netstrings касается только вложенных байтовых строк ; все остальное выходит за рамки спецификации.
- ^ PHP правильно десериализует любые числа с плавающей запятой, но сериализует их до полного десятичного расширения. Например, 3.14 будет сериализован до 3.140 000 000 000 000 124 344 978 758 017 532 527 446 746 826 171 875 .
- ^ Привязки данных XML и инструменты сериализации SOAP обеспечивают типобезопасную XML-сериализацию структур данных программирования в XML. Показаны значения XML, которые можно поместить в элементы и атрибуты XML.
- ^ Этот синтаксис несовместим с Internet-Draft, но используется некоторыми диалектами Lisp .
Сравнение двоичных форматов
[ редактировать ]Формат | Нулевой | логические значения | Целое число | Плавающая точка | Нить | Множество | Ассоциативный массив / объект |
---|---|---|---|---|---|---|---|
АСН.1 ( BER , PER или OER кодировка ) |
НУЛЕВОЙ тип | БУЛЕВОЕ :
|
ЦЕЛОЕ ЧИСЛО :
|
НАСТОЯЩИЙ :
|
Несколько допустимых типов ( VisibleString, PrintableString, GeneralString, UniversalString, UTF8String ) | Характеристики данных НАБОР (неупорядоченный) и ПОСЛЕДОВАТЕЛЬНОСТЬ (гарантированный заказ) | Тип, определяемый пользователем |
БСОН | \x0A (1 байт) |
Истинный: \x08\x01 ЛОЖЬ: \x08\x00 (2 байта) |
int32: 32-битное с прямым порядком дополнение до 2 байтов или int64: 64-битное с прямым порядком байтов дополнение до 2 | Двойной : байтовый файл с прямым порядком байтов64. | В кодировке UTF-8 , перед которой указывается длина строки в байтах в кодировке int32. | Встроенный документ BSON с цифровыми ключами | BSON Встроенный документ |
Краткое представление двоичных объектов (CBOR) | \xf6 (1 байт) |
(1 байт) |
|
|
|
|
|
Эффективный обмен XML (EXI) [а] (Формат несохраняемых лексических значений) |
xsi:nil не допускается в двоичном контексте. | 1–2-битное целое число, интерпретируемое как логическое значение. | Логический знак плюс 7-битные октеты произвольной длины, анализируются до тех пор, пока старший бит не станет равным 0, с прямым порядком байтов. Схема может установить нулевую точку на любое произвольное число. Unsigned пропускает логический флаг. |
|
Целочисленная кодировка Unicode с префиксом длины. Вместо этого целые числа могут представлять перечисления или записи таблицы строк. | Набор элементов с префиксом длины. | Не в протоколе. |
Плоские буферы | Закодировано как отсутствие поля в родительском объекте. |
(1 байт) |
Дополнение Little-endian 2 со знаком и без знака 8/16/32/64 бита | В кодировке UTF-8 , перед которой указывается 32-битная целочисленная длина строки в байтах. | Векторы любого другого типа, которым предшествует 32-битное целое число элементов. | Таблицы (типы, определенные схемой) или векторы, отсортированные по ключу (карты/словари) | |
Ион [18] | \x0f [б]
|
|
|
|
|
\xbx Произвольная длина и накладные расходы. Длина в октетах.
|
|
Пакет сообщений | \xc0
|
|
|
Типовой код (1 байт) + одинарный/двойной IEEE |
кодировка не указана [19] |
|
|
Чистые строки [с] | Не в протоколе. | Не в протоколе. | Не в протоколе. | Не в протоколе. | Длина закодирована как строка ASCII + ':' + данные + ',' Длина учитывает только октеты между ':' и ',' |
Не в протоколе. | Не в протоколе. |
OGDL двоичный файл | |||||||
Список недвижимости (двоичный формат) |
|||||||
Буферы протоколов |
|
В кодировке UTF-8 , перед которой указывается целочисленная длина строки в байтах в кодировке varint. | Повторяющееся значение с одним и тем же тегом или, только для целых чисел с кодировкой varint, значения, упакованные последовательно и имеющие префикс тега и общей длины в байтах. | — | |||
Улыбка | \x21
|
|
|
IEEE одинарный/двойной, BigDecimal
|
«Короткие» строки с префиксом длины (до 64 байтов), «длинные» строки с маркером в конце и (необязательные) обратные ссылки. | Гетерогенные массивы произвольной длины с конечным маркером | Пары ключ/значение произвольной длины с конечным маркером |
Форматы обмена структурированными данными (SDXF) | 24-битное или 32-битное целое число со знаком с обратным порядком байтов | Двойной IEEE с прямым порядком байтов | Кодировка UTF-8 или ISO 8859-1. | Список элементов с одинаковым идентификатором и размером, которому предшествует заголовок массива длиной int16. | Чанки могут содержать другие чанки произвольной глубины. | ||
Бережливость |
- ^ Любое представление на основе XML можно сжать или сгенерировать с помощью EXI – «Формат эффективного обмена XML (EXI) 1.0 (второе издание)» . [17] - который представляет собой стандарт двоичного сжатия XML с «информацией о схеме» (в отличие от стандарта двоичного сжатия, требующего схемы или не требующего схемы).
- ^ Все базовые типы Ion имеют нулевой вариант, как и его тег 0xXf. Любой тег, начинающийся с 0x0X, отличный от 0x0f, определяет игнорируемое заполнение.
- ^ Интерпретация сетевых строк полностью зависит от приложения или схемы.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Апач Бережливость
- ^ Борман, Карстен (26 декабря 2018 г.). «Отношения CBOR с msgpack» . Гитхаб . Проверено 14 августа 2023 г.
- ^ «Реализации» . Гитхаб .
- ^ «HAPI FHIR — API FHIR с открытым исходным кодом для Java» . hapifhir.io .
- ^ cpython/Lib/pickle.py
- ^ «Краткая история SOAP» . www.xml.com .
- ^ Бен-Кики, Орен; Эванс, Кларк; Нет, Инги Дёт (01 октября 2009 г.). «YAML не является языком разметки (YAML) версии 1.2» . Официальный веб-сайт YAML . Проверено 10 февраля 2012 г.
- ^ «text_format.h — Буферы протокола» . Разработчики Google .
- ^ «Сопоставление JSON — буферы протокола» . Разработчики Google .
- ^ «Формат Avro Json» .
- ^ «Документация класса NSPropertyListSerialization» . www.gnustep.org . Архивировано из оригинала 19 мая 2011 г. Проверено 28 октября 2009 г.
- ^ «Архив документации» . разработчик.apple.com .
- ^ Орен Бен-Кики; Кларк Эванс; Брайан Ингерсон (18 января 2005 г.). «Нулевой тип, независимый от языка, для YAML версии 1.1» . ЯМЛ.орг . Проверено 12 сентября 2009 г.
- ^ Перейти обратно: а б Орен Бен-Кики; Кларк Эванс; Брайан Ингерсон (18 января 2005 г.). «Логический тип, независимый от языка, для YAML версии 1.1» . ЯМЛ.орг . Кларк С. Эванс . Проверено 12 сентября 2009 г.
- ^ Орен Бен-Кики; Кларк Эванс; Брайан Ингерсон (11 февраля 2005 г.). «Целый тип, независимый от языка, для YAML версии 1.1» . ЯМЛ.орг . Кларк С. Эванс . Проверено 12 сентября 2009 г.
- ^ Орен Бен-Кики; Кларк Эванс; Брайан Ингерсон (18 января 2005 г.). «Тип с плавающей запятой, независимый от языка, для YAML версии 1.1» . ЯМЛ.орг . Кларк С. Эванс . Проверено 12 сентября 2009 г.
- ^ «Эффективный расширяемый обмен» .
- ^ Ионное двоичное кодирование
- ^ «MessagePack — чрезвычайно эффективная библиотека сериализации объектов. Она похожа на JSON, но очень быстрая и маленькая: msgpack/msgpack» . 2 апреля 2019 г. – через GitHub.