Всегда есть альтернативный путь и нетипичные задачи. Если по каким-то причинам у вас никак не получается использовать более-менее стандартные вещи для решения своих задач, то сделай это сам.
Давеча наткнулся на статью, где объясняют, как с помощью Clojure переводить циско-конфиги в машиночитаемый вид. Что само по себе не несёт в массы ничего кардинально нового, но дельно объясняет, как работают те самые “более-менее стандартные” инструменты, позволяя реализовывать нужный функционал без необходимости тащить за собой невнятные зависимости.
https://www.firstclassfunc.com/1/01/parsing-network-configurations-with-clojure/