References
9 sources outside this site. The chapter that needed each source already links to it. This page recommends nothing that the prose does not already recommend, so the list stays short, and does not become a directory.
The language itself
The nightly build checks every claim on this site against the compiler below. When a chapter and the standard library disagree, the standard library is correct, and the chapter has a bug.
- ziglang.org
The language home page, the official documentation, and the release notes.
- Download a master build
This guide follows master, not a tagged release. The nightly tarballs are here.
Linked from InstallationGetting Started
- The Zig source, on Codeberg
The location of the standard library source. Chapters cite it by file and line (std/mem.zig, std/Io/Writer.zig). Thus you can read the implementation behind a claim, and you do not have to trust the claim.
Where the standard library stops
Three libraries that the guide names, because std does not cover these areas, on purpose, and says so. All three are dependencies, not part of the language. Thus the nightly build of this site does not verify them. They follow the compiler on their own schedule.
- zg
Unicode text processing by Sam Atman: grapheme clusters, display width, case folding, normalization. std has none of these. The tables are large, so that decision is correct. The library has separate modules, so a program includes only the modules that it uses.
Linked from Unicode RecipesStandard Library
- zig-string
A UTF-8 aware String type by Jakub Szark, MIT licensed. Use it when you want the shape of a string class, not a slice of bytes and a set of free functions.
Linked from String RecipesStandard Library
- mecha
A parser-combinator library by Jimmi Holst Christensen. The build system chapter uses it as the example of a real dependency to declare and fetch.
Linked from DependenciesBuild System
Tools
You do not need these tools to follow the guide, but they help.
- ZLS, the Zig Language Server
Completion, go-to-definition and inline errors in any editor that supports LSP. Build it from source against the same compiler that you use.
Linked from InstallationGetting Started
Prior art
Code by other people, with a design that a chapter rebuilds. The guide names it for two reasons. A reader who knows the design can see where it came from. A reader who does not know it gets a fuller version to read.
- olive.c
A dependency-free 2D graphics library in C by Alexey Kutepov, MIT licensed. It renders into a plain pixel buffer, with no display server and no libc. Its Olivec_Canvas is the struct of pixels, width, height and stride that the canvas chapter builds, field for field. olivec_subcanvas is the same constructor. The library is a single header, and it stays readable while it covers triangles, text and sprites.
Linked from A Canvas Is a ViewGraphics
Worth reading
Articles by other people that a chapter sends you to.
- Everyone should know SIMD, by Mitchell Hashimoto
The argument for why you should learn vector code. The SIMD recipe uses this argument, and does not repeat it.
Linked from Recipe: Scan Bytes with SIMDHow-To
The guide itself starts at the section list.