Удобочитаемый формат файла конфигурации/сериализации ASCII с комментариями и анализаторами для нескольких языков, которые сохраняют порядок и комментарии.

Мой проект сейчас использует файлы .py в качестве файлов конфигурации. Их очень сложно изменить из скриптов, нам пришлось написать собственный упрощенный парсер на Python. Конфигурационные файлы сложны, содержат много диктовок, и нам нужно их часто изменять, иногда с помощью скриптов.

Я хотел бы переместить проект в файлы конфигурации, которые поддерживают комментарии (поэтому чистый JSON отсутствует) и, в идеале, формат, который поддерживается не только Python с существующими простыми парсерами. В идеале что-то, что не слишком отличается от диктовок JSON/Python. В проекте используется множество диктовок/хешей для организации конфигурации.

На удивление сложно найти формат файла для этого варианта использования!

Кандидаты:

  • JSON5: было бы идеально, но есть только одна библиотека для анализа/редактирования/записи, которая сохраняет комментарии, и она написана на Javascript, который не используют серверные люди: https://github.com/noahsug/json5-writer , и она находится в Javascript.

  • HJSON выглядит идеально, но не может найти библиотеку, поддерживающую сохранение комментариев/ответную запись.

  • YAML: ruaml — только библиотека сохранения комментариев, и только Python. Было бы нормально, но он сильно отличается от JSON/Python, и было бы неплохо иметь поддержку хотя бы еще одного языка.

  • XML — отстой, в INI нет диктовок/хешей, eno-lang выглядит странно, в TOML нет парсера, сохраняющего комментарии, и диктовки там выглядят странно с точечной записью.

Хороший обзор темы можно найти здесь, но он датирован 2016 годом: https://kevin.burke.dev/kevin/more-comment-preserving-configuration-parsers/

0 ответов

Другие вопросы по тегам