Skip to content
poise52Public

Latest commit

 

History

8 Commits

Folders and files

Repository files navigation

Virm

Сетевое ядро на Zig 0.16.0. Реализованы пул буферов, ограниченные FIFO, TCP lifecycle и single-worker IPv4 TCP relay через kqueue на macOS. Следующий этап — SOCKS5 parser/handshake.

Подготовка окружения

После клонирования, с установленными Git и mise версии 2026.10.4 или новее, из корня проекта:

mise trust
mise install --locked

Команда устанавливает закреплённый Zig и автоматически подключает Git hooks. С активированным в shell mise hooks также подключаются при входе в доверенный проект. Сам git clone скрипты проекта не запускает.

Перед коммитом hook форматирует staged .zig/.zon, добавляет результаты форматирования в index и последовательно запускает проверку форматирования, тесты Debug, тесты ReleaseSafe и сборку ReleaseSafe. Ошибки блокируют коммит; последующие проверки при отказе не запускаются.

Для коммитов из IDE hook также ищет mise в ~/.local/bin, /opt/homebrew/bin и /usr/local/bin, если он отсутствует в PATH. Для другой директории установки добавьте mise в окружение IDE.

Если staged Zig-файл содержит незастейдженные правки, hook останавливается до форматирования: добавьте файл целиком или разделите изменения. Другие файлы автоматически в index не добавляются.

mise run build
mise run check

check проверяет рабочее дерево без автоисправлений. Hook проверяет рабочее дерево, а не отдельный экспорт Git index; перед коммитом добавьте все связанные изменения, нужные для сборки. В CI используйте mise run check на чистом checkout после установки инструментов. Сетевые тесты текущего relay требуют macOS.

mise.lock закрепляет Zig для macOS ARM64, Linux x64 и Linux ARM64. Linux-записи фиксируют инструментарий для будущего Linux runtime; переносимость ядра этим не подтверждается. Для обновления lockfile без смены версии Zig:

mise lock

Список платформ сохраняется в mise.toml. В копии проекта без Git metadata установка инструментов работает, а подключение Git hooks пропускается.

Releases

Packages

Contributors

Languages