Your Cart
Loading

[Paperback] Learn Zig over Rust and C++: Learn Modern Systems Programming with Zig for C++ and Rust Developers

On Sale
$27.99
$27.99
Added to cart

There's a question that's always been asked by systems programmers working in C++ and those working in Rust. Is there a way to control systems that doesn't mean choosing between power and predictability? Zig represents that path.


The idea is pretty clear as really there's no such thing as hidden behaviour. Everything's totally clear about each allocation. Every error is given a name and can be found in the type system. So, every piece of control flow is going to appear at the call site. The programmer always knows what the program does, because the language won't act without instruction. This book teaches Zig through a project-based approach centred on a single growing systems toolkit.


This book gives you hands-on experience with Zig's allocator model, generic programming through comptime, typed error handling, filesystem and process management, concurrent threads and atomic state, and HTTP server construction, with each concept built on the one before it.For C++ developers, Zig gets rid of undefined behaviour and preprocessor complexity without sacrificing machine-level access. For Rust developers, it's got a simpler ownership model, no borrow checker friction, and a C interoperability path that doesn't need a binding generator. You'll see that both communities have familiar systems programming patterns expressed in a language that carries none of their respective historical weight.


Key Features

  • Write memory-safe systems code without garbage collector or borrow checker overhead.
  • Control heap allocation using Zig's transparent allocator interface.
  • Build compile-time generic data structures with zero runtime overhead.
  • Handle errors through typed error sets.
  • Interoperate with C libraries directly without binding generators or wrapper layers.
  • Cross-compile production binaries with a single build command.
  • Coordinate concurrent threads safely using Mutex, atomic values, and condition variables.
  • Model data with exhaustive enums and tagged unions.
  • Inspect and manipulate raw memory through typed slices, packed structs, and pointers.
  • Deploy release binaries using Zig's 3 configurable build modes.


Table of Content

  1. Getting Started with Zig
  2. Exploring Zig Codes
  3. Allocation, Safety, and Data Structures
  4. Generics, Reflection, and Toolchain
  5. Files, Processes, and Networks
  6. Threads, Shared State, and Coordination
  7. Optimisation and Deployment
  8. Advanced Patterns