Jetzig is a batteries-included web framework written in Zig| www.jetzig.dev
本文承接《Zig 中间表示》的内容,继续讨论 Zig 程序编译的下一步:从 ZIR 指令序列,经过语义分析的过程,生成 AIR 指令序列。 本文翻译自 Mitchell Hashimoto 关于 Zig 的系列博客第四篇: Zig Sema: ZIR => AIR (https://mitchellh.com/zig/sema) 语义分析是 Zig 程序编译的核心环节,且它包括了 Zig 语言独特的设计:编译时求值。不同于其他语言常常需要使用额外的语法来定义和计算类型(泛型...| 夜天之书
本文承接《Zig 词法分析和语法解析》的内容,继续讨论 Zig 程序编译的下一步:从抽象语法树(AST)中生成中间表示(IR)。 本文翻译自 Mitchell Hashimoto 关于 Zig 的系列博客第三篇: Zig AstGen: AST => ZIR (https://mitchellh.com/zig/astgen) 翻译本文的过程中,我越来越回想起自己使用 Perl 6 做编译实习作业的时候。通过 Perl 6 内嵌的 Grammar 语法,我基本把词法分析和语法分析的内容给快速...| 夜天之书
Zig 语言是近几年来逐渐声名鹊起的一个新编程语言,也是数目稀少的系统编程语言家族中的一个新成员。它由 Andrew Kelley 于 2015 年开始创造,至今已经开发了八个年头,但是仍然还未发布 1.0 版本。 不过,已经有不少新锐项目选择使用 Zig 开发,例如 JavaScript 运行时和完整开发套件 bun 和分布式金融数据库 tigerbeetle 等。 Hashicorp 的创始人 Mitchell Hashimoto 也在前年卸任 CEO 成为 I...| 夜天之书
← Back to| ziglang.org
Karl Seguin's Blog - A mix of coding and creative writing| www.openmymind.net
Intro| steelcake.com
← Back to| ziglang.org
Inside Zig's New Writer| joegm.github.io
Some time ago I lamented that I don't know how to write a retry loop such that:| matklad.github.io
Karl Seguin's Blog - A mix of coding and creative writing| www.openmymind.net
I’ve been writing C code professionally since about 2006, and while I look at a lot of languages (I have varying levels of familiarity with Python, Erlang, Ada, Haskell, Go, Rust, C++, OCaml, D, Javascript, Prolog, Lua, Lisp, Bash, Perl, Forth…you get the idea) I have yet to find one that I would rather use in cases where C is appropriate. Part of this inclination is that I mainly write for embedded systems where a lot of the features of higher level languages either don’t help or cost ...| Nathan's Musings
This post is aimed at people who come from languages with automatic garbage collection and want to get a sense for how to approach memory management in a lower level language. I’ll be using Zig (and a bit of Python) to demonstrate, but the concepts apply to C and other languages where you have to care if your data is going on the stack or the heap.| Nathan's Musings
This post is going to explain how pointers, arrays, and slices work in Zig, without depending on knowledge of other languages that use pointers. If you’re trying to learn Zig and your only programming experience is in a language with managed memory, this is for you. If you’re struggling to understand pointers in C, this might help. If you’re coming from C or C++ and just want to know the differences, you might be better off reading the official documentation for arrays, slices, and poin...| Nathan's Musings
This guide was last updated in March of 2024 with an 0.12.0-dev build. Zig is a moving target, and stuff written about it may fall out of date. If you find something broken about this, feel free to let me know.| Nathan's Musings
Update: April 2024 - A lot has happened since I originally wrote this article. I may still update it in to cover the current state of things, but Killian Vounckx wrote an update in February of 2022 and Issue 130 has been closed. I’m not porting the original version of this article to the Sphinx site, so if you want to read it, you can find it here.| Nathan's Musings
Wrapping a C Library with Zig¶| www.nmichaels.org
0.15.1 Release Notes| ziglang.org
A short post about a coding pattern that is relevant for people who use the heap liberally and manage memory with their own hands.| matklad.github.io
GPT-5 writes a Zig EVTX parser from scratch.| www.omerba.dev
I’ve been learning a lot about low-level programming languages lately, and for a long time there has been one thing that has interested me: SIMD (or ‘single instruction, multiple data’) code. I’ve seen a lot of articles about having massive performance gains by utilizing SIMD and wanted to learn how to do it myself. This article is a journey into implementing ~60% faster substring searching compared to Zig’s std.mem.indexOf using a SIMD-friendly algorithm.| aarol.dev
Introduction| glfmn.io
I have recently tried to update my Zig project from 0.11.0 version of Zig, to 0.12.0. Zig compiler brings in its own build system. Since Zig is still under development, that API changes. The 0.12.0 changes forced me to dive a bit deeper into Zig’s source code. I went through Build.zig and Step.zig. What caught my attention was the usage of Tagged Unions. Tagged unions aren’t nothing new. C has them… kind of. In C, the tagged unions are more of a design pattern than a language feature.| Projects
Resizable structs in Zig| tristanpemble.com
Optimi-Zi(n)g Sudoku-Solving| log.pfad.fr
Yes I know about that one talk from Rob Pike.| kristoff.it
ls but with io_uring| tangled.sh
Karl Seguin's Blog - A mix of coding and creative writing| www.openmymind.net
There was an (almost) catastrophic OpenZFS bug. If they had used zig, the bug would be easily detected. But the question remains, could we detect this bug in C?| flak.tedunangst.com
OpenZFS Bug Ported to Zig| andrewkelley.me
Learn the ⚡Zig programming language by fixing tiny broken programs.| Codeberg.org
← Back to| ziglang.org
This post will be a bit all over the place. Several months ago, I wrote Hard Mode Rust, exploring an allocation-conscious style of programming. In the ensuing discussion, @jamii name-dropped TigerBeetle, a reliable, distributed, fast, and small database written in Zig in a similar style, and, well, I now find myself writing Zig full-time, after more than seven years of Rust. This post is a hand-wavy answer to the why? question. It is emphatically not a balanced and thorough comparison of the ...| matklad.github.io
A discussion of some of the downsides of Zig| typesanitizer.com
Memory safety is a cornerstone of Zig’s design philosophy. While maintaining the performance benefits of manual memory management, Zig incorporates sophis| Murat Genc
Insights, updates, and technical deep dives on building a high-performance financial transactions database.| tigerbeetle.com
Zig is awesome for low-level systems programming, but when working on multiple projects in a shared...| Zig NEWS
ZCS is an open source ECS implemented in Zig.| Games by Mason
Karl Seguin's Blog - A mix of coding and creative writing| www.openmymind.net
Last week I started playing with my own toy key-value store (see the previous post). At the end I got to a hashtable exposed over the network, using a protocol based on S-Expressions. For the next steps, I have two alternatives, I can work on the low level representation of the data, maybe implement B-Trees, and some storage, or I can go up instead, and see how can I make it distributed, and play with some nice algorithms.| Logos, Thumos & Code
Karl Seguin's Blog - A mix of coding and creative writing| www.openmymind.net
0.14.0 Release Notes| ziglang.org
The financial transactions database designed for mission critical safety and performance. - tigerbeetle/tigerbeetle| GitHub
Programming without pointers| www.hytradboi.com
Karl Seguin's Blog - A mix of coding and creative writing| www.openmymind.net
June 08, 2025| ziglang.org
Zig; what I think after months of using it| strongly-typed-thoughts.net
Karl Seguin's Blog - A mix of coding and creative writing| www.openmymind.net
21st century systems languages, with fundamentally different philosophies.| lewiscampbell.tech
Karl Seguin's Blog - A mix of coding and creative writing| www.openmymind.net
Zig's Comptime is Bonkers Good| www.scottredig.com
Motiejus Jakštys personal space| jakstys.lt
Fuzz testing decades-old software can turn up some curious behaviors| www.ryanliptak.com
My wife and I have pledged $300,0001 to the| Mitchell Hashimoto
Golang comptime. Pure blasphemy. Contribute to pijng/prep development by creating an account on GitHub.| GitHub
This is part of a series on Zig comptime usecases.| Mitchell Hashimoto
Zig has a very powerful feature called comptime.| Mitchell Hashimoto
Some quick Zig feedback in the context of a new 8-bit emulator project I starteda little while ago:| floooh.github.io
Learning zig by making a chess engine| John's Codes
Zig’s reflection combined with Zig’s ability to import C header files means Zig can be used for C macro reflection.| jstrieb.github.io
This is a card in Dave's Virtual Box of Cards.| ratfactor.com
Discover how negative space programming can enhance your code's robustness and clarity by focusing on what your program should not do.| double-trouble.dev
...by adding just a few lines to your build.zig| kristoff.it
How Zig's allocators can help manage memory and improve performance| www.openmymind.net
Zig's New CLI Progress Bar Explained| andrewkelley.me
How a mutex, a condition variable and a priority queue can be used to build a simple task scheduler in Zig.| www.openmymind.net
I’ve started writing Zig. These are my thoughts.| arne.me
Zig, Rust, and other languages| notes.eatonphil.com
I recently started playing with the Zig programming language and wanted to try it out for its speed. And what better way to do that than to try optimizing matrix multiplication? Since there are a plethora of resources to understand how to multiply matrices efficiently (see the Resources section below), I won’t be doing anything intense in this article (though maybe in the future I will). The naive matrix multiplication algorithm is given below in Zig:| svaniksharma.github.io
This is a story about the messy state of Microsoft’s DirectX shader compiler, and trying to wrangle it into a nicer experience for game developers. In some respects, building the DXC compiler better than how Microsoft does.| devlog.hexops.com
Zig is a new, independently developed low-level programming language. It’s a modern reimagining of C that attempts to retain C’s performance while embracing improvements from the last 30 years of tooling and language design. Zig makes calling into C code easier than any other language I’ve used. Zig also treats unit testing as a first-class feature, which the C language certainly does not. These two properties of Zig create an interesting opportunity: Zig allows you to add unit tests to...| mtlynch.io
Zig is a new, open-source programming language designed to replace C. I’m still a Zig beginner, so I’m trying to learn the language by using Zig to rewrite parts of existing C applications. One of the first challenges I encountered with Zig is understanding strings. I couldn’t find detailed documentation about how Zig strings work when calling C code, so I’m sharing my findings in case they’re helpful to others who want to use Zig to call C.| mtlynch.io
An introduction to a recent addition to Zig's standard library that allows for checking that any allocation failures are handled without introducing memory leaks, etc.| www.ryanliptak.com
Using Zig allocators to improve the results of fuzz testing| www.ryanliptak.com
A stop-gap solution for fuzzing Zig code| www.ryanliptak.com
Generating code coverage information for Zig tests/binaries using Callgrind| www.ryanliptak.com
The latest development version of Zig can now compile (and cross-compile) Windows resource files and embed manifest files| www.ryanliptak.com
Copy and paste "🧑🌾" in your terminal emulator. How many cells forward| Mitchell Hashimoto
Do you ever need a C library to cross compile in Go? I got something to work this week that makes me feel better about my cross-compilation setup.| fREW Schmidt's Foolish Manifesto
Something simple that I failed to understand for too long| www.ryanliptak.com
FOSS • Linux • Programming| blog.orhun.dev