The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Amazon открыл Ion, реализацию типизированного варианта JSON

22.04.2016 23:28

Компания Amazon опубликовала реализацию переносимого типизированного формата сериализации текстовых и бинарных данных Ion, расширяющего возможности формата JSON. Эталонный парсер и сериализатор для Ion написан на языке Java и поставляется под лицензией Apache 2.0. По сравнению с JSON в Ion предоставляется отдельный тип для вещественных чисел, возможно включение бинарных данных без дополнительного кодирования base64, можно указывать аннотации, поддерживаются символьные таблицы, структура оптимизирована для высокой скорости чтения данных. Формат является самоописываемым, т.е. читать и записывать данные можно без определения схемы хранения.

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/44296-ion
Ключевые слова: ion, json
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (48) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Genby (?), 23:40, 22/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    не вижу превосходство над YAML
     
     
  • 2.4, A.Stahl (ok), 23:50, 22/04/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Превосходство, видимо, в том, что апгрейд с простого JSON, где он недостаточен, будет безболезненным.
     
     
  • 3.6, Аноним (-), 00:03, 23/04/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Апгрейд до YAML якобы болезненный
     
  • 3.46, Аноним (-), 18:01, 24/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    С эталонным парсером на Java? Безболезненнм? Ну замени libjson попробуй.
     
  • 2.21, Дядя Паша (?), 11:16, 23/04/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Интересно где ты в YAML увидел типизацию.
     
     
  • 3.32, Genby (?), 14:02, 23/04/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Интересно где ты в YAML увидел типизацию.

    https://en.wikipedia.org/wiki/YAML#Data_types

     
  • 2.51, Grammar Narziss (?), 08:59, 25/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    «превосходства», алё
     
  • 2.53, Sfinx (ok), 12:00, 25/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    И где в ямл BSON ? Про бинарные данные тоже мутно. Ты бы попробовал запарсить/распарсить метров 100 сырых картинков с описаловом и все сразу поймешь.
     
     
  • 3.54, Аноним (54), 10:33, 09/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    yaml это язык читаемый человеком, для конфигов.
    т.е. там максимум строк 10-20 не более. тем более он тормознутый для парсинга.
     
  • 2.55, Аноним (54), 10:36, 09/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    еще бы с ini сравнил
    совершенно разное предназначение

    json - практически стандарт для обмена данными по сети.
    yaml - для написания небольших конфигов. если то использует его для хранения и обмена большими объемами данных - мне их жаль

     

  • 1.5, Аноним (-), 23:59, 22/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Чем оно лучше cbor?
     
  • 1.7, Аноним (-), 00:14, 23/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а знает кто-нибудь библиотеку, умеющую конвертировать json в бинарные md4 файлы?
     
     
  • 2.47, Аноним (-), 18:03, 24/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > а знает кто-нибудь библиотеку, умеющую конвертировать json в бинарные md4 файлы?

    OpenSSL со своим glue code, только по слухам md4 декодировать довольно ресурсоемко.

     

  • 1.8, Аноним (-), 00:33, 23/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Без спеки или RFC оно не столь интересно как им кажется.
     
     
  • 2.10, annual slayer (?), 00:40, 23/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    http://amznlabs.github.io/ion-docs/spec.html

    ?

     

  • 1.9, Бармагл (?), 00:37, 23/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    пусть дополнят реализацией на C, Python, C# - тогда посмотрим
     
  • 1.11, Аноним (-), 00:43, 23/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как без гемора в json передавать большие куски html?
     
     
  • 2.12, Аноним (-), 01:16, 23/04/2016 [^] [^^] [^^^] [ответить]  
  • +7 +/
    {
        ”html”:здесь весь html
    }
     
     
  • 3.13, Crazy Alex (ok), 02:28, 23/04/2016 [^] [^^] [^^^] [ответить]  
  • –3 +/
    И эскейпить кавычки, угу. Это нынче "без гемора".
     
     
  • 4.14, омномнимус (ok), 02:52, 23/04/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    ты его вручную пишешь штоле?
     
  • 4.16, Аноним (-), 06:21, 23/04/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    не хочешь эскейпить в base64 перегони и все
     
     
  • 5.28, Аноним (-), 13:06, 23/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    это накладные по скорости:

    т.е сперва
    всё -> base64 -> это всё в json

     
     
  • 6.38, Аноним (-), 19:08, 23/04/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если тебе критична скорость разбора - выкидываешь json, берёшь bson/bencode/whatever. JSON - это текстовый формат, со всеми вытекающими. Оверхед конечно не такой чудовищный, как для xml, но он есть и заметен.
     
  • 5.48, Аноним (-), 18:05, 24/04/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > не хочешь эскейпить в base64 перегони и все

    И получи просадку по скорости при разборе и на треть больше траффика, однако.

     
  • 2.15, Аноним (-), 04:12, 23/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    base64
     
  • 2.56, Аноним (54), 10:39, 09/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    так передавайте html c json, в чем проблема?

    тут html блок 1
    <div id="1"></div>
    тут html блок 2
    <div id="2"></div>
    ...
    {тут пошел json}

     

  • 1.18, Нанобот (ok), 09:30, 23/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >поддерживаются реальные типы данных

    Что хотел сказать автор этой фразой?

     
     
  • 2.19, A.Stahl (ok), 09:56, 23/04/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это, видимо, дословный перевод "real numbers" -- вещественное число.
     
  • 2.30, robux (ok), 13:36, 23/04/2016 [^] [^^] [^^^] [ответить]  
  • –3 +/
    меня тоже "порадовало" - оказывается, этот json даже реальные цифры не понимает, гыгы ))
     
     
  • 3.42, Вареник (?), 22:47, 23/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Текстовый формат, поля которого не понимают реальных (и любых других) цифр... Совсем абсурд получается :)
     

  • 1.20, Меломан1 (?), 10:31, 23/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Amazon

    Может им и им подобным слинять с JS на Ruby и пользоваться человеческим YAML?

     
     
  • 2.29, Аноним (-), 13:08, 23/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >>Amazon
    > Может им и им подобным слинять с JS на Ruby и пользоваться
    > человеческим YAML?

    ямл же тоже текстовый? точнее json это подмножество yaml.
    т.е картинку что бы передать через него то нужно через base64 её контент перегнать что бы вставить

     
     
  • 3.43, Меломан1 (?), 03:56, 24/04/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >>>Amazon
    >> Может им и им подобным слинять с JS на Ruby и пользоваться
    >> человеческим YAML?
    > ямл же тоже текстовый? точнее json это подмножество yaml.
    > т.е картинку что бы передать через него то нужно через base64 её
    > контент перегнать что бы вставить

    А по-другому как?

     
  • 2.57, Аноним (54), 10:57, 09/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    а это идея - выкинуть все  нафиг и переписать на Ruby,
    а лучше на YAML - веть YAML  человеческий!
     

  • 1.22, анонимчик (?), 11:49, 23/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А чем оно лучше message pack?
     
     
  • 2.27, анонимчик (?), 12:50, 23/04/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    почитал - оно текстовое.
    посмотрел код на джаве - какое-же джава монстр.
     

  • 1.26, Amsterdam Navigator (?), 12:06, 23/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Amazon изобрел Transit. Слоупоки.
     
  • 1.31, angra (ok), 14:02, 23/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > расширяющего возможности формата JSON. По сравнению с JSON  возможно включение бинарных
    > данных без дополнительного кодирования base64

    Ага, только сделать это можно исключительно в бинарном варианте этого ion, который уже не имеет ничего общего с JSON. А в текстовом варианте ion используется все тот же base64.

    При беглом просмотре спецификации я не вижу у его текстового варианта особых преимуществ над JSON, а у бинарного преимуществ над кучей других форматов сериализации. Так зачем он нужен такой красивый и нафиг к JSON примазываться?

     
     
  • 2.35, анонимчик (?), 14:55, 23/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Согласен. Очередное ненужно.
     

  • 1.33, Kodir (ok), 14:30, 23/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > По сравнению с JSON в Ion поддерживаются реальные типы данных

    Совсем укурки что ли?? JSON уже 100 лет поддерживает указание типа! Более того - и циклические ссылки тоже. Видимо, студота в Амазоне только пришла из универов и не в курсе.

     
     
  • 2.34, Kodir (ok), 14:36, 23/04/2016 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Даже не поленился для амазоновских слоупоков ссылочку найти: http://www.newtonsoft.com/json/help/html/SerializeTypeNameHandling.htm

    Типы спокойно поддерживаются.

     
     
  • 3.49, Пользователь Debian (?), 18:27, 24/04/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты либо троллишь, либо путаешь ни с чем не совместимый костыль отдельной реализации под платформу Microsoft .NET со стандартом.

    Стандарт описан тут: http://json.org

     

  • 1.36, Kodir (ok), 14:59, 23/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > По сравнению с JSON в Ion поддерживаются реальные типы данных

    Переводчик, твой рязанский инглиш коверкает всю суть "изобретения" Мармазона. Реально там было вот что:

    "Ion also expands JSON’s number specification by defining distinct types for arbitrary-size integers, IEEE-754 binary floating point numbers, and infinite-precision decimals."

    Другими словами, Ион просто увеличивает количество вещественных типов, которые можно указать в сериализаторе (хотя JSON прекрасно справляется простым numeric). Зачем Амазон изобретает колесо? Оказывается,

    " in practice, many implementations represent all JSON numbers as fixed-precision base-2 floats, which are subject to rounding errors"

    То есть в самом JSON никакой проблемы нет, есть просто море кривых реализаций, где вещ.число пишут в ограниченном виде. Более того - JSON никому не запрещает держать числа в BigDecimal и они будут записаны с полной точностью! Другими словами, Амазон сам придумал проблему для 0.00001% случаев, прекрасно знает об ограничениях double и безразмерной точности BigDecimal, и всё равно вешает лапшу "мы решили эфемерную проблему точности".

    Спасибо, Амазон, за лишнее доказательство твоей полной тех.некомпетентности!

     
  • 1.37, увася (?), 15:19, 23/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Комментарии поддерживаются?
     
  • 1.41, Аноним (-), 20:59, 23/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Для этого есть BSON http://bsonspec.org/
     
  • 1.44, Аноним (-), 09:41, 24/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    они тоже хотят заняться Embrace, extend and extinguish ?

     
     
  • 2.45, Аноним (-), 10:00, 24/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Съесть-то он съест, да кто ж ему даст...
     

  • 1.52, Аноним (-), 09:23, 25/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    - Мы сделали свой джейсон!
    - Зачем?
    - Потому что мы можем!
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру