Zig–Python биндинги через CPython C-API
engineering
pyzig — это скилл для Claude Code, который описывает слой взаимодействия Zig и Python в проекте Faebryk, включая сборку при импорте, генерацию обёрток и правила владения памятью. Слой состоит из трёх частей: Python-загрузчик (`__init__.py` с поддержкой `ZIG_NORECOMPILE` и `ZIG_RELEASEMODE`), Zig-сборка (`build.zig`, собирающая `pyzig.so` и `pyzig_sexp.so` и генерирующая `.pyi`-стабы), а также утилиты привязки (`pybindings.zig`, `pyzig.zig`, `type_registry.zig`, `pyi.zig`). Обращение к CPython C-API происходит напрямую, без cffi/ctypes — Zig-структуры оборачиваются в Python heap-типы через `wrap_in_python(...)`. Скилл применяется при добавлении новых экспортируемых API, модификации нативных расширений для graph, sexp и typegraph, а также при отладке взаимодействия с C-API и управлении временем жизни Zig-объектов.
- #zig
- #python-bindings
- #native-extensions
- #c-api
- #interop
- #faebryk