← На главную

SOML: новый формат конфигурации с строгими типами

02.11.2026 18:42 · hackernews

SOML, или Sindre’s Objectively Marvelous Language, — проект формата конфигурационных файлов, который пытается соединить удобство YAML со строгостью JSON. Верхнему уровню объекта не нужны фигурные скобки, ключи можно писать без кавычек, перенос строки заменяет запятую, а комментарии разрешены почти везде, где допустим пробел. При этом структура определяется скобками и строками, поэтому отступы не меняют смысл документа.

Главное правило формата: тип значения зависит от синтаксиса, а не от содержимого. Строка всегда заключена в кавычки, целые числа и числа с плавающей точкой остаются разными типами, а неоднозначные значения вызывают ошибку. Целые числа точно представляются в 64 битах. Дубликаты ключей, выход чисел за допустимый диапазон, пустые документы и некорректные данные отклоняются, а не передаются на усмотрение конкретного парсера.

SOML поддерживает литеральные строки без экранирования для путей и регулярных выражений, многострочные блоки текста, логические значения и null. Даты, моменты времени и длительности являются самостоятельными типами: запись вроде 1h30m не заставляет читателя угадывать единицы измерения. В отличие от TOML, документом может быть массив верхнего уровня. В формате нет YAML-псевдонимов и тегов, которые автор относит к источникам рисков.

Для одинаковых значений предусмотрена каноническая форма с одинаковыми байтами, удобная при хешировании, подписании и сравнении. Отдельный форматтер сохраняет комментарии, порядок полей и написание значений; его правила включены в спецификацию. Грамматика рассчитана на один проход без предварительного просмотра, а реализации проверяются общим набором почти из тысячи тестов.

Проект уже включает редактор для macOS с поддержкой Quick Look, экспериментальный парсер на типах TypeScript и правила ESLint. Спецификация распространяется по лицензии MIT. Однако это пока черновик: автор приглашает оставлять отзывы, а библиотек доступно немного, поэтому говорить о зрелой экосистеме рано.

Читать оригинал →