Skip to content

zigcc/awesome-zig

Awesome Zig Awesome

Zig is a general-purpose programming language and toolchain for maintaining robust, optimal and reusable software.

Important

Zig is a rapidly evolving language. Some projects listed here may require a specific version of the Zig compiler (e.g., the latest master or a stable release like 0.13.0). Always check the project's repository for compatibility.

Contributing:

This repository lists "awesome" Zig projects and ecosystem tools, maintained by the ZigCC community. If you find a well-maintained library that is not yet included here, welcome to submit it via a pull request. Just be sure to execute make all before you open a PR.

Contents

TOC is generated by markdown-toc.

Fundamentals

Learning Resources

  • Zig Language Reference - An introduction to the language with examples.
  • Zig In-depth Overview - In-depth Overview of the Zig philosophy.
  • Zig Guide - Get started with the Zig programming language.
  • Zig cookbook - A collection of simple Zig programs that demonstrate good practices to accomplish common programming tasks.
  • Zig in 30 minutes - A half-hour to learn Zig.
  • Ziglings - Learn the Zig programming language by fixing tiny broken programs.
  • Learning Zig - This guide aims to make you comfortable with Zig. It assumes prior programming experience, though not in any particular language.
  • Zig 圣经 - Chinese 简单、快速地学习 Zig.
  • Introduction to Zig - a project based book - This is an open book by author Pedro Duarte Faria that provides an introduction to the Zig programming language, which is a new general-purpose, and low-level language for building robust and optimal software.
  • Systems Programming with Zig - This book teaches how to write quality, useful Zig applications without relying on libraries or frameworks.
  • Zen of Zig - Interactive Zig book, teaching from beginner to intermediate level with playgrounds and illustrations. Also available on Leanpub

Community

  • Ziggit - The Zig forum.
  • Discord - Official Zig Discord server.
  • ZigCC - Chinese Zig community.
  • Reddit - The Zig subreddit.
  • Zig Monthly - Articles and news from the community.
  • Zigistry/Zigistry - A place where you can find all the libraries that suit your Zig lang needs.

Text Editors

Linters

Documentation and Testing

  • kristoff-it/zig-doctest - A tool for testing snippets of code, useful for websites and books that talk about Zig.

Package and Version Manager

Utility

Linker

  • kubkon/bold - A drop-in replacement for Apple’s system linker ld.

Performance Benchmark

Language Essentials

Memory Allocator and Management

Data Structure and Algorithm

String Processing

Parser Library

Logging Processing

  • emekoi/log.zig - A thread-safe logging library for Zig.
  • g41797/syslog - A syslog RFC5424 client library.
  • chrischtel/nexlog - A modern, feature-rich logging library for Zig with thread-safety, file rotation, and colorized output.
  • sam701/slog - A configurable, structured logging package for Zig with support for hierarchical loggers.
  • ross-weir/logex - A library that enriches std.log logging with additional functionality and features.
  • muhammad-fiaz/logly.zig - A modern, production-grade, high-performance structured logging library for Zig, built for speed and scalability.

File Format Processing

Date, Time and Timezones

Command Line and Argument Parser

Finite State Machine

Systems Programming

Asynchronous Runtime

  • mitchellh/libxev - A cross-platform, high-performance event loop that provides abstractions for non-blocking IO, timers, events, and more and works on Linux (io_uring or epoll), macOS (kqueue), and WebAssembly + WASI. Available as both a Zig and C API.
  • kprotty/zap - An asynchronous runtime with a focus on performance and resource efficiency.
  • lithdew/pike - Async I/O for Zig.
  • floscodes/coroutinez - A small runtime for running tasks using coroutines in Zig.
  • Thomvanoorschot/backstage - Concurrent Actor framework.

Multithreading

Embedded Development

Operating Systems

Compilers and Interpreters

  • Aro - A C compiler with the goal of providing fast compilation and low memory usage with good diagnostics.
  • buzz - A small/lightweight statically typed scripting language.
  • dawk - Reasonably fast POSIX-compliant AWK implementation with good diagnostics.
  • Element 0 - A small embeddable Lisp dialect written in Zig.
  • fubark/cyber - Fast and concurrent scripting.
  • Fun - A statically-typed language that transpiles to C, combining safety and performance with C's efficiency.
  • fury - A gradual, safe systems language.
  • squeek502/zua - An implementation of Lua 5.1 in Zig, for learning purposes.
  • Vexu/bog - Small, strongly typed, embeddable language.

Emulators

Kernel and Containers

  • zbpf - Writing eBPF in Zig.
  • oci-spec-zig - OCI (Open Container Initiative) runtime, image and distribution spec in Zig.

Network & Web

Network

Browser

Runtime

  • oven-sh/bun - Incredibly fast JavaScript runtime, bundler, transpiler and package manager – all in one.

Web Framework

Web3 Framework

WebAssembly

Data & Science

Database

Linear Algebra

Scientific Computation

Machine Learning Framework

Large Language Model

Machine Learning

Encryption

Sensor and Communication Interface

Multimedia & Graphics

GPU Computing

Graphics Library

GUI

Game Development

Audio Processing

Image and Video Processing

Interoperability

FFI Bindings

Zig wrappers and bindings for existing C/C++ libraries, providing idiomatic Zig APIs.

Build with Zig

Existing C/C++ projects that have replaced their original build systems with Zig's build system, enabling seamless cross-compilation and dependency management via zig build.

  • libz - Library zlib with the build system replaced by Zig.
  • libmp3lame - Library libmp3lame with the build system replaced by Zig.
  • libvorbis - Library libvorbis with the build system replaced by Zig.
  • libogg - Library libogg with the build system replaced by Zig.
  • nasm - Library nasm with the build system replaced by Zig.
  • FFmpeg - Library FFmpeg with the build system replaced by Zig.
  • libebur128 - Library libebur128 with the build system replaced by Zig.
  • pulseaudio - Library pulseaudio with the build system replaced by Zig.
  • libchromaprint - Library chromaprint with the build system replaced by Zig.
  • raylib - A simple and easy-to-use library to enjoy videogames programming.
  • openssl - TLS/SSL and crypto library (uses Zig Build).
  • wolfssl - Library WolfSSL Using Zig Build.
  • fmt - A modern formatting library (uses Zig build-system).
  • boost unordered - Boost.org unordered module (uses Zig build).
  • boost async - Coroutines for C++20 & asio (uses Zig build for testing).
  • json - Library JSON for Modern C++ (uses Zig build-system).
  • context - Library boost.context using Zig build.
  • fiber - Userland threads uses Zig build.
  • outcome - Provides very lightweight outcome<T> and result<T> (non-Boost edition) (uses Zig build-system).
  • Standalone - An Asio standalone C++ HTTP/S Server (uses Zig build-system).
  • asio - The Asio C++ Library with Zig build-system.
  • observable - Unique-ownership smart pointers with observable lifetime.
  • Catch2 - A modern, C++-native, test framework for unit-tests, TDD and BDD - using C++14, C++17 and later (C++11 support is in v2.x branch, and C++03 on the Catch1.x branch) - uses Zig build-system.
  • cppfront - Build Cppfront w/ Zig build.
  • hana - Your standard library for metaprogramming.
  • intrusive - Boost.org intrusive module.
  • range - The Range library for C++14/17/20, basis for C++20's std::ranges.
  • benchmark - A microbenchmark support library. First post at here.
  • boring_tls - Google's BoringTLS client and server. Adds TLS to any (including non standard library) TCP/HTTP traffic.

Misc

Releases

No releases published

Packages

No packages published

Contributors 113