Zig — это язык программирования общего назначения и набор инструментов для создания надёжного, оптимального и переиспользуемого программного обеспечения.

НАЧАТЬ Последний релиз:  0.13.0
Документация Изменения

⚡ Простой язык

Сосредоточьтесь на отладке вашего приложения, а не на борьбе с особенностями языка.

  • Нет скрытых потоков управления.
  • Нет скрытых выделений памяти.
  • Нет препроцессора, нет макросов.

⚡ Comptime

Новый подход к метапрограммированию на основе выполнения кода во время компиляции и ленивых (отложенных) вычислений.

  • Вызов любой функции на этапе компиляции.
  • Манипуляция типами как значениями без накладных расходов во время выполнения программы.
  • Comptime эмулирует целевую архитектуру.

⚡ Поддерживайте существующий код с помощью Zig

Поэтапно улучшайте кодовую базу на C/C++/Zig.

  • Применяйте Zig в качестве компилятора для C/C++, который поддерживает кросс-компиляцию «из коробки».
  • Используйте zig build для создания единой среды разработки на всех платформах.
  • Интегрируйте Zig в проекты на C/C++, открывая доступ к богатой стандартной библиотеке для всего кода на C/C++.

Полный обзор

Больше примеров кода

index.zig
const std = @import("std");
const parseInt = std.fmt.parseInt;

test "parse integers" {
    const input = "123 67 89,99";
    const ally = std.testing.allocator;

    var list = std.ArrayList(u32).init(ally);
    // Ensure the list is freed at scope exit.
    // Try commenting out this line!
    defer list.deinit();

    var it = std.mem.tokenizeAny(u8, input, " ,");
    while (it.next()) |num| {
        const n = try parseInt(u32, num, 10);
        try list.append(n);
    }

    const expected = [_]u32{ 123, 67, 89, 99 };

    for (expected, list.items) |exp, actual| {
        try std.testing.expectEqual(exp, actual);
    }
}
Shell
$ zig test index.zig
1/1 index.test.parse integers...OK
All 1 tests passed.

Сообщество Zig децентрализовано

Любой может создать и поддерживать своё собственное сообщество.
Не существует понятия "официальное" или "неофициальное" — каждое сообщество имеет своих модераторов и правила.

Разработка

Репозиторий Zig можно найти на https://github.com/ziglang/zig, где мы также ведём трекер проблем и обсуждаем предложения.
От участников ожидается соблюдение Кодекса поведения Zig.

Zig Software Foundation

ZSF — это некоммерческая организация 501(c)(3).

Zig Software Foundation — это некоммерческая организация, основанная в 2020 году Эндрю Келли, создателем Zig, с целью поддержания развития языка. В настоящее время Zig Software Foundation может предложить оплачиваемую работу на конкурентных ставках небольшому числу ключевых контрибьюторов. Мы надеемся в будущем расширить это предложение для большего круга людей.

Zig Software Foundation существует за счёт пожертвований.

Узнать больше

Корпоративные спонсоры

Следующие компании оказывают финансовую поддержку Zig Software Foundation.

GitHub-спонсоры

Благодаря людям, которые спонсируют Zig, проект остаётся подконтрольным open-source сообществу, а не корпоративным акционерам. В частности, эти замечательные люди спонсируют Zig на сумму 200 долларов в месяц или более:

  • José M Rico
  • drfuchs
  • Kirk Scheibelhut
  • Mitchell Hashimoto
  • Bun
  • Huly® Platform™
  • Stevie Hryciw
  • Karrick McDermott
  • Joran Dirk Greef
  • bfredl
  • Simon A. Nielsen Knights
  • Emi Gutekanst
  • Derek Collison
  • Paul Harrington
  • Clark Gaebel
  • Marcus Eagan
  • Ken Chilton
  • Will Manning
  • Spiral
  • Alex Mackenzie at Tapestry VC
  • Alok Parlikar
  • Keygen
  • Этот раздел обновляется ежедневно.