Что такое Zig?
Zig — это универсальный язык программирования и набор инструментов, разработанный для создания надёжного, оптимального и многократно используемого программного обеспечения. Созданный Эндрю Келли, Zig стремится стать лучшей альтернативой C, предлагая современные языковые возможности при сохранении простоты и производительности, необходимых системным программистам.
🔥 Основные возможности Zig
⚡ Простота и скорость
Никакого скрытого потока управления, никаких скрытых выделений памяти, никакого препроцессора. Сосредоточьтесь на отладке вашего приложения, а не на знании языка.
🔧 Comptime магия
Выполнение кода во время компиляции и ленивые вычисления. Вызывайте любую функцию во время компиляции и манипулируйте типами как значениями без накладных расходов во время выполнения.
🌐 Кросс-компиляция
Встроенная поддержка кросс-компиляции для десятков целевых платформ. Большинство платформ не требуют внешних зависимостей.
🔄 Взаимодействие с C/C++
Используйте Zig как замену компилятора C/C++ с улучшенной кросс-компиляцией. Постепенно внедряйте Zig в существующие кодовые базы.
🆕 Что нового в Zig 0.16.0
- В/В как интерфейс: Все операции ввода-вывода теперь требуют экземпляра
Io, поддерживая потоковые, событийные и асинхронные бэкенды - Асинхронность и отмена операций: Встроенный параллелизм задач с Futures и Groups, стандартизированная отмена всех операций ввода-вывода
- Новые встроенные функции метапрограммирования:
@Typeзаменён специализированными буiltins (@Int,@Struct,@Union,@Enumи др.) для более чистого обобщённого кода - Нативное сжатие Deflate: Встроенное deflate-сжатие с производительностью, сравнимой с zlib, и упрощёнными API декомпрессии
- Улучшенные трассировки стека: Безопасное разворачивание стека на почти всех платформах с улучшенной отладочной информацией и поддержкой встроенных вызывающих
- Расширенная поддержка платформ: 8+ новых архитектур в CI, включая aarch64-freebsd, loongarch64, powerpc64le и s390x
📦 Установка из debian.griffo.io
Шаг 1: Добавить репозиторий
This repository uses reprepro, which is configured to keep only the latest version of each package. This means older builds are replaced when a new release ships — you cannot pin a specific version with
apt install zig=0.15.2 after 0.16.0 has been published.To let users keep a previous release installed alongside the current one, packages are now named by stability tier:
zig— meta-package, always pulls inzig-stablezig-stable— current stable release (e.g. 0.16.0)zig-oldstable— previous stable release (e.g. 0.15.2), installable alongsidezig-stablezig-0— deprecated, installzig-stableinstead
zig-stable and zig-oldstable register with update-alternatives
so you can switch the active /usr/bin/zig at any time.⬆️ Обновление до 0.16.0: Если у вас установлен
zig-0 из старой структуры пакетов, сначала удалите его:Шаг 2: Установить Zig
🎯 Примеры базового использования
Создать новый проект:
Скомпилировать один файл:
Использовать как компилятор C:
🚀 Почему стоит выбрать debian.griffo.io?
- ✅ Всегда актуально: Получите Zig 0.15.2 немедленно, а не через месяцы
- ✅ Ночные сборки: Доступ к передовым функциям с пакетом zig-master
- ✅ Автоматические обновления: Пакеты обновляются в течение нескольких часов после выпуска upstream
- ✅ Правильные зависимости: Корректно упаковано со всеми необходимыми зависимостями
- ✅ Несколько дистрибутивов: Работает на Bookworm, Trixie и Sid
- ✅ Без сложностей: Никакой ручной компиляции или сложной настройки не требуется
📦 Репозиторий сборки пакетов
Пакеты Debian собираются и поддерживаются автоматически в этих репозиториях GitHub:
- 🇿 zig-debian (stable) - Стабильные сборки выпусков
- 🇿 zig-master-debian (nightly) - Ночные сборки разработки
🔗 Связанные пакеты
Также доступно из debian.griffo.io:
- Языковой сервер ZLS - Поддержка IDE для Zig
- Терминал Ghostty - Быстрый эмулятор терминала
- Файловый менеджер Yazi - Терминальный файловый менеджер