Когда проект растёт, обычные
.toml, .yaml и .json превращаются в кошмар — без импортов, функций, комментариев и валидации.CueLang решает почти всё: строгая типизация, DRY, схемы и экспорт в JSON/YAML. Но беда — только Go, без питонячих биндингов.
А вот Starlark неожиданно оказался достойной альтернативой:
— безопасен (песочница, без доступа к FS и сети);
— расширяем (можно подключать Python-функции);
— даёт контроль над импортами и окружением;
— похож на Python, но только внешне — внутри это совсем другой зверь.
Пример:
import starlark
with open("config.star") as f:
code = f.read()
module = starlark.Module()
stdlib = starlark.Globals.standard()
ast = starlark.parse("config.star", code)
starlark.eval(module, ast, stdlib, None)
Starlark — не замена CueLang, а отличный инструмент, если нужно встроить безопасный DSL в продукт.
Но для личных проектов — Python + Pydantic всё ещё проще и удобнее.
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3