Есть прикольный формат данных, который может использоваться для простого создания DSL-ей под различные нужды: от конфигов и межсерверной коммуникации, до программирования и логирования.
Он в 2 раза компактнее XML, в 20 раз проще YAML, в 2 раза быстрее JSON.
Он является бинарным, но человекопонятным, но не требует экранирования, но парсится как машиной так и человеком предельно однозначно.
Нативная модель данных у него похожа на XML, но без всех его сложностей и куда более гибкая. Он вообще сам себе AST.
Несколько интересных идей, как он может использоваться, в чём он особо хорош:
- удобные расширяемые конфиги
- структурированное логирование
- коммуникация любых консольных утилит без парсинга текста регулярками
Подробно о нём тут: https://page.hyoo.ru/#!=8i7ao7_xfyxah
А вкратце тут: https://github.com/nin-jin/tree.d
Тут пример использования спец DSL для добавления подсветки синтаксиса для своего DSL за 3 минуты: https://www.youtube.com/watch?v=33k5ryVu0Uc
А тут пример пайплайна его обработки на js: https://page.hyoo.ru/#!=b6c11q_ocy5oh
Ну а здесь онлайн песочница с разными трансформациями: https://tree.hyoo.ru/
Что думаете об этом всём? Пока что есть реализациии лишь на D и TS, почти нет тулинга. Не хотели бы присоединиться к развитию?