Targets · Zig · Capabilities

Capabilities

Which high-level features a Program can use when it renders to Zig — low-level, allocation-explicit native code.

Contents

How a Program becomes Zig, in parts. Start with the introduction, then follow each part into the rendered output and the runtime it links against.

What Zig is good for

Zig targets low-level, allocation-explicit native code — systems programming, embedded work, and small fast binaries. Like Go and Rust it has no native GUI, so the interface is a terminal; it gives fine control over memory and has a lean standard library. The reactive core and the drivers are the same as any target; only the driver set differs.

FeatureStatusHow
User interfaceTerminalThe interface driver renders Ui to a terminal. No built-in windowed GUI; the browser is served by JavaScript.
ConsoleBuilt inConsole maps to std.debug.print / std.io.
NetworkingStd libraryNetwork uses std.net / std.http; the surface is smaller than other targets and still maturing.
AsynchronyBuilt inA LOCKED state models an in-flight value; a driver completes it and re-enters the cycle. Zig gives explicit control of the event loop.
Storage & filesBuilt inStorage maps to std.fs.
AllocationExplicitZig passes allocators explicitly; the runtime threads one through, which is why the entry point takes an allocator.
Animation / graphicsNot nativeNo rendering surface on the target; time-based effects are limited to a terminal.

Where a capability needs host code it arrives as a NATIVE Zig function (needing a zig body) or a driver — see native modules and drivers.