<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Релиз системы разбора произвольных бинарных файлов Kaitai St...</title>
    <link>https://m.opennet.me/openforum/vsluhforumID3/108788.html</link>
    <description>Поле четырёх месяцев разработки доступен релиз инструментария хKaitai Struct 0.4 (http://kaitai.io/) - языка для описания форматов сериализации произвольных бинарных структур данных. Идея Kaitai Struct заключается в том, что формат данных описывается с помощью простого декларативного языка на основе YAML, а затем это описание можно скомпилировать в готовый код парсера на любом из поддерживаемых языков. Для облегчения отладки предлагается визуализатор, в котором можно наблюдать, как сериализованная в файле структура раскладывается в дерево взаимосвязанных объектов в соответствии с описанием.&lt;br&gt;&lt;br&gt;&lt;br&gt;Основные новшества (https://github.com/kaitai-io/kaitai_struct_compiler/blob/6fdb65561c6362c9412e24d61c2502506a41d80a/RELEASE_NOTES.md):&lt;br&gt;&lt;br&gt;-  Поддержка новых целевых языков: полностью поддерживается C#, предварительно поддерживается C++ (на основе стандартной библиотеки STL).&lt;br&gt;-  Поддержка новых типов данных: типы с плавающей точкой IEEE 754 (одинарной и двойной точности) и выделенный тип для массивов байт&lt;br&gt;-  Новые</description>

<item>
    <title>Релиз системы разбора произвольных бинарных файлов Kaitai St... (lk)</title>
    <link>https://m.opennet.me/openforum/vsluhforumID3/108788.html#30</link>
    <pubDate>Fri, 12 Aug 2016 11:45:42 GMT</pubDate>
    <description>Картинка визуализатора там одна. Впрочем и её достаточно -- &quot;консольный&quot;.&lt;br&gt;&lt;br&gt;Не понимаю разницу с конструктом.&lt;br&gt;</description>
</item>

<item>
    <title>Релиз системы разбора произвольных бинарных файлов Kaitai St... (GreyCat)</title>
    <link>https://m.opennet.me/openforum/vsluhforumID3/108788.html#29</link>
    <pubDate>Fri, 12 Aug 2016 08:03:11 GMT</pubDate>
    <description>JSON вида &#123;&quot;msg&quot;: &#091;&quot;foo&quot;, 1, 5, 7, &#091;-1.5, -0.5&#093;&#093;&#125; тоже не будет самоописываемым, если работа с msg проводится с помощью массива констант типа такого:&lt;br&gt;&lt;br&gt;const ENTITY_NAME = 0&lt;br&gt;const ENTITY_COORDS = 4&lt;br&gt;&lt;br&gt;и, соответственно, обращение через json.msg&#091;ENTITY_COORDS&#093; = &#091;-1.5, -0.5&#093;.&lt;br&gt;</description>
</item>

<item>
    <title>Релиз системы разбора произвольных бинарных файлов Kaitai St... (nuclight)</title>
    <link>https://m.opennet.me/openforum/vsluhforumID3/108788.html#28</link>
    <pubDate>Thu, 11 Aug 2016 18:09:34 GMT</pubDate>
    <description>Нет, тут немножко в кучу смешалось. Формат protobuf - не самоописываемый. Формат protobuf из приведенного списка эквивалентен ASN.1 - для того, чтобы полноценно пропарсить бинарное сообщение, получателю необходимо иметь описание формата - несмотря на то, что типы и длины в потоке указаны, имен там нет. Упрощенный пример - пришли в пакете два числа, строка, массив из трех чисел? Что это такое, что куда? Вы заранее не знаете, если не согласовать это в парсере - именно за этим компилятор protobuf-языка&lt;br&gt;&lt;br&gt;Действительно полностью самоописываемым будет JSON (и, например, какая-нибудь вариация XML-схемы, где договорились об указании имен, но это таки согласовать придется опять) - в нем имеются не только типы данных, но и названия этих переменных. Вот такие данные получатель уже сможет пропарсить, не имея заранее описания синтаксиса/схемы (зачем? подумайте, например, о проблеме апгрейда между версияи - убирание старых полей, добавление новых).&lt;br&gt;&lt;br&gt;Но если нужен бинарный эквивалент JSON, в наше время следует смотреть </description>
</item>

<item>
    <title>Релиз системы разбора произвольных бинарных файлов Kaitai St... (GreyCat)</title>
    <link>https://m.opennet.me/openforum/vsluhforumID3/108788.html#27</link>
    <pubDate>Thu, 11 Aug 2016 15:09:17 GMT</pubDate>
    <description>Во-первых, вы предлагаете очень странную вещь. То есть, представьте, как это будет читаться хотя бы человеческим глазом:&lt;br&gt;&lt;br&gt;- id: u2&lt;br&gt;- id: blah&lt;br&gt;  type: strz&lt;br&gt;  terminator: 0xd&lt;br&gt;- terminator: u4&lt;br&gt;&lt;br&gt;Сравните это с текущей, куда более однородной, на мой взгляд, записью:&lt;br&gt;&lt;br&gt;- id: id&lt;br&gt;  type: u2&lt;br&gt;- id: blah&lt;br&gt;  type: strz&lt;br&gt;  terminator: 0xd&lt;br&gt;- id: terminator&lt;br&gt;  type: u4&lt;br&gt;&lt;br&gt;На самом деле тут задано три атрибута с идентификаторами &quot;id&quot;, &quot;blah&quot; и &quot;terminator&quot;. В описание поля всего одна key-value пара, то мы считаем идентификатором - key, а типом - value. Если больше одной - то, внезапно, все по-другому - они обрабатываются как полноценные key-value пары описания атрибута.&lt;br&gt;&lt;br&gt;Вообще, предполагалось, что это формат разметки, а не полноценный язык программирования с кучей syntactic sugar, который людям придется еще надо отдельно изучать. &quot;Много способов сделать одно и то же&quot; не хочется поощрять. Это здорово упрощает создание дополнительных инструментов - визуализаторов, визуальных редакторов, отладчиков и т.д. Мне сде</description>
</item>

<item>
    <title>Релиз системы разбора произвольных бинарных файлов Kaitai St... (jacob)</title>
    <link>https://m.opennet.me/openforum/vsluhforumID3/108788.html#26</link>
    <pubDate>Thu, 11 Aug 2016 06:35:11 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Кажется избыточным в описании формата везде писать &quot;id&quot; и &quot;type&quot;.&lt;br&gt;&amp;gt; Давайте усложним задачу :) Как тогда предлагаете описывать поля типа таких: &lt;br&gt;&amp;gt;       - id: frame_times &lt;br&gt;&amp;gt;         type: f4 &lt;br&gt;&amp;gt;         repeat: expr &lt;br&gt;&amp;gt;         repeat-expr: num_frames &lt;br&gt;&amp;gt;         if: group != 0 &lt;br&gt;&lt;br&gt;В ваших примерах на гитхабе большинство полей идет именно как id и type. Так может, добавить частный случай, чтобы сократить писанину?&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Релиз системы разбора произвольных бинарных файлов Kaitai St... (GreyCat)</title>
    <link>https://m.opennet.me/openforum/vsluhforumID3/108788.html#25</link>
    <pubDate>Thu, 11 Aug 2016 06:14:24 GMT</pubDate>
    <description>&amp;gt; Кажется избыточным в описании формата везде писать &quot;id&quot; и &quot;type&quot;.&lt;br&gt;&lt;br&gt;Давайте усложним задачу :) Как тогда предлагаете описывать поля типа таких:&lt;br&gt;&lt;br&gt;      - id: frame_times&lt;br&gt;        type: f4&lt;br&gt;        repeat: expr&lt;br&gt;        repeat-expr: num_frames&lt;br&gt;        if: group != 0&lt;br&gt;</description>
</item>

<item>
    <title>Релиз системы разбора произвольных бинарных файлов Kaitai St... (GreyCat)</title>
    <link>https://m.opennet.me/openforum/vsluhforumID3/108788.html#24</link>
    <pubDate>Thu, 11 Aug 2016 06:11:01 GMT</pubDate>
    <description>Вот у этого товарища в статье картинок было сколько-то - https://habrahabr.ru/post/281595/&lt;br&gt;&lt;br&gt;Construct, безусловно, близок, но он сильно проще и сильно более императивный. Там чуть что - seek или вычисление выражения надо делать вручную из python.&lt;br&gt;</description>
</item>

<item>
    <title>Релиз системы разбора произвольных бинарных файлов Kaitai St... (jacob)</title>
    <link>https://m.opennet.me/openforum/vsluhforumID3/108788.html#23</link>
    <pubDate>Thu, 11 Aug 2016 05:46:28 GMT</pubDate>
    <description>Кажется избыточным в описании формата везде писать &quot;id&quot; и &quot;type&quot;. Вместо какого-нибудь&lt;br&gt;seq:&lt;br&gt;  - id: src_port&lt;br&gt;    type: u2&lt;br&gt;  - id: dst_port&lt;br&gt;    type: u2&lt;br&gt;&lt;br&gt;Можно было бы писать просто:&lt;br&gt;&lt;br&gt;seq:&lt;br&gt;  - src_port: u2&lt;br&gt;  - dst_port: u2&lt;br&gt;</description>
</item>

<item>
    <title>Релиз системы разбора произвольных бинарных файлов Kaitai St... (lk)</title>
    <link>https://m.opennet.me/openforum/vsluhforumID3/108788.html#22</link>
    <pubDate>Thu, 11 Aug 2016 04:19:28 GMT</pubDate>
    <description>Где картинки визуализатора?&lt;br&gt;&lt;br&gt;А то без него на construct смахивает.&lt;br&gt;</description>
</item>

</channel>
</rss>
