What's new
New chapters, in the order they were published. Generated from the repository's history at build time, so it lists what shipped rather than what someone remembered to write down. The guide currently servesZig 0.17.0-dev.2125+0d600e488, and all 232 snippets were compiled and run against that build before this page existed.
Add the batch job runner, the section's first whole program
1 chapterA Batch Job Runner
Add "Coming from std.Thread", and drop the thread-pool chapter from the plan
1 chapterComing from `std.Thread`
Add the atomics chapter to the Concurrency section
1 chapterAtomics
Add merge intervals and the monotonic deque, and rewrite the section in one voice
2 chaptersMerge IntervalsThe Monotonic Deque
Search an answer range, and walk a grid a frontier at a time
2 chaptersBinary Search on the AnswerBreadth-First Search on a Grid
Add prefix sums and the monotonic stack
2 chaptersThe Monotonic StackPrefix Sums and Difference Arrays
Add two pointers and the sliding window, each printing its own working
2 chaptersSliding WindowTwo Pointers
Teach binary search with a program that prints its own working
1 chapterBinary Search
Build the growable array the section always claimed it built
1 chapterA Growable Array
Add the build-along chapter, and stop claiming Zig 0.16 works
1 chapterBuild It From Scratch
Add the three chapters the section was missing
3 chaptersDrawing ItInputThe World
Add Lane Dodger: a raylib game, and the chapters about testing one
6 chaptersHandles, Not PointersDifficulty You Can ProveSound Without Sound FilesVendoring raylibThe Loop Takes No dtA Game You Can Test
Add the URL shortener, a second Projects section
5 chaptersA Postgres ClientRoutes Over a SeamSlugs Are ArithmeticThe ServerWhat We Are Building
Build TCP's core in three chapters after the UDP one
3 chaptersWhen Datagrams Go MissingRetransmission and the WindowSequence Numbers and Acks
Close the graphics section: texture mapping and transforms
2 chaptersTexture MappingTransforms
Teach the canvas: stride, sub-canvases, and what a slice cannot say
1 chapterA Canvas Is a View
Fill the graphics gaps: text, sprites, a scene graph and a chart
4 chaptersA Bar ChartBitmap TextA Scene GraphSprites and Transparency
Complete phase 6: painting, a scripting seam, and the pipeline end to end
Add layout, and explain height: 100% properly
1 chapterLayout
Add the stylesheet and the cascade
1 chapterA Stylesheet and the Cascade
Start phase 6: an HTML parser that cannot fail
1 chapterAn HTML Parser
Close the multipart gap the forms chapter deferred
1 chapterFile Uploads
Close the calling convention gap the compiler and VM chapters admitted to
1 chapterA Calling Convention
Complete phase 4 with the query engine
1 chapterA Query Engine
Add the write-ahead log, and say what it cannot show
1 chapterA Write-Ahead Log
Add the index chapter: a second structure you must keep in step
1 chapterAn Index Over the Log
Start phase 4: append-only records, and the lost update
Complete phase 3: form bodies, sessions, and a template engine
Add path safety and routing to the web server section
Start phase 3: an HTTP request parser and a server that CI actually runs
2 chaptersParsing an HTTP RequestAn HTTP Server
Add phase 1: the primitives a shell needs before it can exist
3 chaptersThe Read-Eval-Print LoopString PrimitivesTokenizing a Command Line
Complete phase 5: a bytecode compiler and the VM that runs it
2 chaptersA Bytecode CompilerA Virtual Machine
Add functions and call frames
1 chapterFunctions and Frames
Add the tree-walking interpreter, where the tree finally does something
1 chapterA Tree-Walking Interpreter
Add the parser: precedence as the shape of the call chain
1 chapterA Parser
Start phase 5: the lexer, and the section the rest of the pipeline lands in
1 chapterA Lexer
Add the From Scratch track, starting with the Unix toolbox
Add Strings and Structs, the two chapters a C course covers that this track did not
2 chaptersStrings Are BytesStructs Are Layout
Add the Groundwork track for readers new to systems programming
9 chaptersErrors Are ValuesEverything Is BytesMemory Is NumberedNumbers Have a SizeOff the EndTalking to the Operating System
Add recipe chapters, and gate the renames that still compile
4 chaptersArray RecipesSlice RecipesString RecipesUnicode Recipes
Add the Operating System section: seven chapters, four in the browser
7 chaptersThe EnvironmentExitingA File Descriptor Is a NumberPipes Are the Child's StreamsSignalsSpawning a Process
Add Queues, Select, Locks and Choosing an Io
4 chaptersstandard-library/choosing-an-iostandard-library/locksstandard-library/queuesstandard-library/select
Add a Cancellation chapter, and teach async against concurrent
1 chapterstandard-library/cancellation
Add the Networking section: sockets, framing, protocols, many clients
7 chaptersBinary Protocols and Byte OrderThree Ways to FrameServing Many ClientsFailure Is OrdinaryBytes Have No EdgesA Text Protocol, Both Directions
Add a Data Structures section
6 chaptersKeeping It BalancedA Binary Search TreeMaking It GenericA Hash Map from ScratchA Linked List by HandThe Lists in std Are Intrusive
Add three more image-processing chapters
3 chaptersHistograms and LevelsMedian and Rank FiltersScaling and Resampling
Add three image-processing chapters to Graphics
Add a Graphics section: software rendering from an empty buffer
8 chaptersAntialiasingAlpha BlendingCirclesWriting an Image FileLinesOnto the Screen
Add a WebAssembly section: explainer plus five recipes
6 chaptersRecipe: Loading wasm in the BrowserRecipe: Calling Zig from JavaScriptRecipe: A Freestanding ModuleRecipe: Passing Data Across the BoundaryRecipe: A WASI CommandWhat WebAssembly Is
Add a zlib compression recipe; generalize C linking to header != lib
1 chapterRecipe: Compressing with zlib
Add a file-backed to-do store recipe
1 chapterRecipe: A File-Backed To-Do Store
Add a PostgreSQL wire-protocol recipe to the Databases section
1 chapterhow-to/postgres-wire
Add a Redis RESP round-trip recipe to the Databases section
1 chapterhow-to/redis-resp
Add a Databases section, starting with SQLite over the C API
1 chapterhow-to/sqlite-basic
Add five How-To recipes ported to current Zig master
5 chaptersRecipe: A Custom JSON SerializerRecipe: The std.math ToolboxRecipe: Struct Memory LayoutRecipe: JSON vs Binary, by SizeRecipe: Vector Algebra
Fill coverage gaps: command-line args, logging, dependencies
Add a chapter explaining the Io interface itself
1 chapterThe Io Interface
Expand the Standard Library section and add site search
8 chaptersBit Sets and Enum CollectionsMultiArrayListParsing and EncodingPriorityQueueStringsTesting
Add a SIMD byte scanning recipe and enable simd128 in the shipped wasm
1 chaptercookbook/simd-scan
Open the ORM group with an Ecto primer for non-Elixir readers
1 chapterbuilding-libraries/orm/what-is-ecto
Complete the ORM group: writes, dialects, migrations, repo, transactions
5 chaptersbuilding-libraries/orm/adaptersbuilding-libraries/orm/insert-updatebuilding-libraries/orm/migrationsbuilding-libraries/orm/repobuilding-libraries/orm/transactions
Start a Building Libraries section with an Ecto-style ORM group
3 chaptersbuilding-libraries/orm/query-builderbuilding-libraries/orm/schema-to-sqlbuilding-libraries/orm/validation-rules
Older changes are in the repository's history. The nightly build runs at 06:00 UTC against Zig master, so a day with no entry here is a day the compiler changed nothing this guide depends on. The same list, for a feed reader, is at rss.xml, and the guide itself starts at the section list.