TGViewer
Технологический Болт Генона Технологический Болт Генона @tech_b0lt_genona · 9.82K subscribers
Post #7085 1.73K
Технологический Болт Генона Продолжаем четверг! Слово автору @alurm --- Привет, читатели! 🙂 Меня зовут Алан, на GitHub alurm. Я хочу вам рассказать про мой проект json2dir: конвертор из JSON в папку, который я использую в основном для декларативного менеджмента дотфайлов в связке…
Этот четверг необычный относительно четверговых проектов. Весёлые ребята подхватили идею Алана (https://t.me/tech_b0lt_Genona/7084) и решено было свершить массовое безумие. Не поделиться я им не могу 🌝

Слово автору @swagshasha

---

Всем привет!

Все слышали, наверное, про знаменитый проект json2dir.
Да-да, тот самый, который берёт JSON и превращает его в структуру директорий и файлов.
Звучит как технология, которую никто не просил, но она существует.

Идея простая: описал дерево файлов в JSON — получил его на диске.
Странно, просто и неожиданно удобно.

Но есть один маааленький недостаток: никакого RFC и всего одна реализация — на Rust.
Мы решили, что так дело не пойдёт.
Так появился Awesome json2dir — со спецификацией, conformance tests и реализациями на всём, до чего удалось дотянуться.

Начинали мы с Zig, Go, C#, Java и Haskell.
Потом подтянулась старая школа: C, C++, Ada, Kotlin, Scala, Nim, Odin, Fortran, Pascal, COBOL и PL/I.
Функциональные: Erlang, Elixir, Gleam, OCaml, PureScript, Clojure и Common Lisp.
Скриптовые: Python, Ruby, Perl, JavaScript, Lua, Julia и MATLAB/Octave.
Просто писать json2dir стало скучно, поэтому появились версии на Rocq/Coq, Lean 4 и TLA+ — потому что мало создать директорию, надо ещё математически доказать, что ты создал её правильно.
Байткоды и ассемблеры: json2dir на x86-64 assembler в MASM-синтаксисе (работает без libc), вручную написанном CIL, WebAssembly и даже прямо на LLVM IR.
Шеллы: Bash, zsh, PowerShell и Nushell. Заодно json2dir на AWK и json2dir на sed.
DSL и инструменты как json2dir: Nix, Puppet, Ansible, CMake, MSBuild, jq, XSLT, SQL и Typst.
И даже nginx: реализация на nginx njs строит дерево файлов через запросы к собственному WebDAV endpoint'у. То есть да, веб-сервер тоже умеет быть json2dir.
Дальше начинается сумеречная территория: INTERCAL, Befunge-98, Brainfuck, Ook!, Whitespace, Chef, ArnoldC, Rockstar, Shakespeare, Hexagony, Unlambda, Fractran, Aheui, Subleq, Pikachu, Taxi и Malbolge.
json2dir на Velato, где программа — это MIDI.
json2dir на Piet, Brainloller и Braincopter, где программа — это картинка (приложены к посту).
json2dir на SystemVerilog и VHDL.
И, наконец, самописные json2dir на bimbo-lang и ludka-trade, компилирующиеся в LLVM IR.
Мы всё это для вас собрали, прогнали через тесты и выложили:
результаты всех реализаций
Попутно даже нашли баг в апстриме самого json2dir: если имя заканчивается на /, он следует по симлинку и записывает данные в его цель.
В общем, пользуйтесь json2dir на здоровье — в любом стеке и практически на любом языке программирования.
Если вдруг обнаружите стек или язык, на котором json2dir у нас ещё не запускается, — заводите тикет. Мы с радостью попробуем это исправить. Ну или написать ещё одну реализацию.
И не стесняйтесь делать свои реализации, даже если ваш язык уже есть в списке. Ещё один json2dir никогда не бывает лишним.

---

Вроде бы просто проект для развлечения, но подход серьёзный. Посмотрите на отчёт, который показывает как хорошо каждая реализация проходит набор тестов, прелесть же
  • 😁 34
  • 🔥 18
  • ❤ 7
  • 💊 3
  • 👍 1
  • 🤯 1
More from @tech_b0lt_genona
  1. Oct 8, 2026Рунет: чем централизованнее, тем уязвимее. Удар по дата‑центру Яндекса побудил многих «око…
  2. Oct 8, 2026Продолжаем четверг! Слово автору @alurm --- Привет, читатели! 🙂 Меня зовут Алан, на GitHu…
  3. Oct 8, 2026🔥 Каскадный коллапс Рунета. Мрачные прогнозы воплотились. Первопричиной цифрового домино…
  4. Oct 8, 2026В России предложили разрешить размещать ЦОДы для ИИ за рубежом https://www.vesti.ru/ns/v-r…
  5. Oct 8, 2026Четверг, а значит время проектов от подписчиков! 🌝 Тем, кто пропустил, что такое четверго…
  6. Oct 8, 2026Ну это просто праздник В GitHub выявлено 543 тысячи оставленных в репозиториях действующих…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →