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

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

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

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

⚡ Выполнение кода во время компиляции

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

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

⚡ Сопровождайте с Zig

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

  • Используйте Zig как готовый C/C++ компилятор без зависимостей, который поддерживает кросс–компиляцию “из коробки”.
  • Используйте zig build для создания консистентной среды разработки на всех платформах.
  • Добавляйте частички Zig в C/C++ проекты. Меж–языковая “оптимизация во время связывания” (LTO) включена по умолчанию.

Подробный обзор

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

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);
    }
}
$ zig test parse_integers.zig
1/1 parse_integers.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 Эндрю Келли (Andrew Kelley), создателем Zig, чтобы поддерживать развитие языка. В настоящее время ZSF может оплачивать труд малого количества основных разработчиков по конкурентной зарплате. Мы надеемся расширить это предложение на большее количество людей в будущем.

Zig Software Foundation поддерживается за счет пожертвований.

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

Спонсоры

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

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

Спонсоры с GitHub

Благодаря людям, которые спонсируют Zig, проект подотчётен сообществу открытого кода, а не корпоративным акционерам. В частности, эти замечательные люди спонсируют 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
  • Stephen Gutekanst
  • Derek Collison
  • Paul Harrington
  • Clark Gaebel
  • Marcus Eagan
  • Ken Chilton
  • Will Manning
  • Fulcrum Labs
  • Alex Mackenzie at Tapestry VC
  • Alok Parlikar
  • johnpyp
  • Этот раздел обновляется в начале каждого месяца.