Awesome Zig
A general-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
Contents
- Algorithms and data structures
- Allocators and memory
- Audio
- Bootables
- Compilers and interpreters
- Database
- Editor plugins
- Emulators
- Game tools and libraries
- Games
- GUI
- Misc libraries
- Network
- Web
- System tools
- Zig development tools
- Parser
- Learning resources
- Other
Algorithms and data structures
- ziglibs/s2s - Binary serialization format and library.
- BarabasGitHub/LZig4 - LZ4 implementation.
- DutchGhost/ArrayVec - An array with a vector feeling.
- emekoi/deque.zig - A lock free chase-lev deque.
- kristoff-it/zig-cuckoofilter - Production-ready Cuckoo Filters for any C ABI compatible target.
- marijnfs/zigtimsort - TimSort implementation.
- Sahnvour/zig-containers - A container library.
- Srekel/zig-sparse-set - Sparse sets, supporting both SOA and AOS style.
- hexops/xorfilter - Xor Filters for checking if a key is part of a set.
- JakubSzark/zig-string - UTF-8 string data structure.
Allocators and memory
- fengb/zee_alloc - Tiny allocator primarily targeting WebAssembly.
- mdsteele/ziegfried - A general-purpose memory allocator.
- suirad/Seal - An allocator that wraps another allocator and detects if memory is leaked after usage.
- Hejsil/zig-gc - A super simple mark-and-sweep garbage collector.
Audio
- Hejsil/zig-midi
- hazeycode/zig-alsa - Bindings for ALSA (libasound).
- dantecatalfamo/sndio-zig - Bindings for sndio.
Bootables
- AndreaOrru/zen - Experimental operating system.
- andrewrk/clashos - Multiplayer arcade game for bare metal Raspberry Pi 3 B+.
- andrewrk/HellOS - "hello world" x86 kernel example.
- chivay/vmt - Toy OS.
- DorianXGH/Lukarnel - A microkernel with Rust microservices.
- iguessthislldo/georgios - Hobby Operating System.
- jzck/kernel-zig - Hobby x86 kernel.
- markfirmware/zig-bare-metal-microbit - Bare metal microbit program.
- markfirmware/zig-bare-metal-raspberry-pi - Bare metal raspberry pi program.
- MasterQ32/RetrOS - A retro-style gaming console running on bare x86 metal.
- nrdmn/uefi-examples - UEFI examples.
- nrdmn/uefi-paint - UEFI-bootable touch paint app.
- SamTebbs33/pluto - An x86 kernel.
- sjdh02/trOS - Tiny aarch64 baremetal OS thingy.
- tralamazza/embedded_zig - Minimal embedded ARM example (STM32F103 blue pill).
- yvt/zig-armv8m-test - Example app for Armv8-M + TrustZone.
- ZeeBoppityZagZiggity/ZBZZ.OS - An operating system built for RISCV.
Compilers and interpreters
- oven-sh/bun - Incredibly fast JavaScript runtime, bundler, transpiler and package manager – all in one.
- Vexu/bog - Small, strongly typed, embeddable language.
- LoLa Programming Language - (GitHub) An embeddable programming language for game scripting.
- squeek502/zua - An implementation of Lua 5.1 for learning purposes.
- CurtisFenner/zsmol - The new Smol compiler and reference.
- dantecatalfamo/brainfuck-zig - Brainfuck interpreter.
- dantecatalfamo/mruby-zig - mruby bindings.
- dantecatalfamo/wren-zig - wren bindings.
Database
- coilhq/tigerbeetle - A distributed financial accounting database designed for mission critical safety and performance.
- kristoff-it/redis-cuckoofilter - Hashing-function agnostic Cuckoo filters for Redis.
- kristoff-it/zig-okredis - Zero-allocation Client for Redis 6+.
- leroycep/sqlite-zig - SQLite bindings.
- vrischmann/zig-cassandra - Client for Cassandra 2.1+.
- vrischmann/zig-sqlite - SQLite wrapper.
Editor plugins
- MarioAriasC/zig-support - Language support for JetBrains IDEs (IntelliJ, CLion and others)
- isaachier/ztags - Ctags implementation for Zig.
- Tetralux/sublime-zig - My own, more lightweight, syntax highlighting for Zig.
- ziglang/sublime-zig-language - Zig language support for Sublime Text.
- ziglang/vscode-zig - Zig language support for VSCode.
- ziglang/zig-mode - Zig mode for Emacs.
- ziglang/zig.vim - Vim configuration for Zig.
- zigtools/zls - Zig LSP implementation + Zig Language Server.
Emulators
- fengb/fundude - Gameboy emulator for WASM.
- GrooveStomp/chip8-zig - CHIP-8 emulator.
- sourgrasses/ichigo - Virtual Boy emulator.
- floooh/kc85.zig - A KC85 emulator.
- Arwalk/ChipZ A simple Chip8 emulator (library and executable).
Game tools and libraries
- hexops/mach - Game engine and graphics toolkit.
- michal-z/zig-gamedev - DirectX 12 game development ecosystem.
- floooh/sokol-zig - Sokol bindings.
- TM35-Metronome/metronome - A set of tools for modifying and randomizing Pokémon games.
- TM35-Metronome/tm35-nds - A library for working with Nintendo DS roms.
- user00e00/sudokuinzig - Simple and robust sudoku solver.
- wendigojaeger/ZigGBA - SDK for creating Game Boy Advance games using Zig.
- hazeycode/brucelib - Monorepo of modules for programming cross-platforms games, simulations, engines & editors.
Games
- Akuli/curses-minesweeper - Minesweeper game written in curses.
- andrewrk/tetris - A simple tetris clone.
- fabioarnold/snake-zig - A simple snake clone.
- Stenodyon/blink - A game about building logic with lasers.
- thejoshwolfe/legend-of-swarkland - Hack-n-slash roguelike inspired by NetHack.
- tiehuis/zstack - Line-race tetris mode.
- kooparse/zalgebra - Linear algebra library for games and real-time computer graphics.
- floooh/pacman.zig - A Pacman clone.
- dantecatalfamo/OpenCSE - Free implementation of the Can't Stop Express dice game.
GUI
- capy-ui/capy - Cross-platform library for making true native GUIs.
- david-vanderson/gui - Immediate mode GUI for Zig.
- Aransentin/ZWL - Zig Windowing Library.
- prime31/zig-upaya - GUI toolkit.
- fubark/cosmic - GUI toolkit.
- batiati/IUPforZig - Zig idiomatic and type-checked bindings for IUP Portable User Interface Toolkit.
- andrewrk/zig-sdl - Self-contained SDL2 package for Zig.
- Snektron/vulkan-zig - Vulkan binding generator.
- Avokadoen/zig_vulkan - Toy renderer using Vulkan and GLFW.
- andrewrk/zig-vulkan-triangle - Simple triangle displayed using Vulkan, GLFW, and Zig.
- kassane/QML-zig - QML bindings.
- cshenton/learnopengl - Learn OpenGL tutorials ported to Zig.
- ifreund/river - Dynamic wayland compositor that takes inspiration from dwm and bspwm.
- Nelarius/weekend-raytracer-zig - An implementation of the "Ray Tracing in One Weekend" book.
- SpexGuy/Zig-Gltf-Display - A program that displays glTF files using Vulkan.
- tiehuis/zig-raytrace - Simple raytracer.
- donpdonp/zootdeck - Fediverse GTK Desktop Reader.
- MasterQ32/ZigPaint - A simple paint application. Used to create an OpenGL loader/wrapper and a minimal UI system.
Misc libraries
- natecraddock/ziglua - Bindings for the Lua C API.
- ryoppippi/zigcv - Bindings for OpenCV4.
- BraedonWooding/Lazy-Zig - Linq.
- DutchGhost/maybeuninit - MaybeUninit.
- emekoi/log.zig - A thread-safe logging library.
- kprotty/zap - A collection of libraries which provide interfaces over the system for writing high performance applications.
- mlarouche/zigimg - Zig library for reading and writing different image formats.
- ziglibs/known-folders - Provides access to well-known folders across several operating systems.
- SasLuca/zig-nanoid - Battle-tested, tiny, secure, URL-friendly, unique string ID generator. Now available in pure Zig.
- kassane/libvlc-zig - Zig bindings for libVLC media framework.
Network
- MasterQ32/zig-network - Small network abstraction layer around TCP & UDP.
- dantecatalfamo/zig-dns - Experimental DNS library implemented in zig.
- euantorano/ip.zig - Library for working with IP Addresses.
- lun-4/zigdig - Naive DNS client library.
- marler8997/netpunch - Outbound proxy protocol.
- remeh/statsd-zig - Basic DogStatsD UDP server.
HTTP
- Luukdegram/apple_pie - HTTP 1.0/1.1 Server implementation.
- truemedian/zfetch - HTTP(S) client based on iguanaTLS.
- ducdetronquito/requestz - HTTP client based on h11.
- ducdetronquito/h11 - I/O-free HTTP/1.1 implementation inspired by hyper/h11.
- lun-4/ziget - Simple wget without libc.
- Vexu/routez - HTTP server.
- frmdstryr/zhp - Featureful HTTP server.
- axgdev/telegram_echobot_zig - Telegram echo bot.
Web
- andrewrk/lua-in-the-browser - Using Zig to build Lua for WebAssembly.
- karlseguin/websocket.zig - A WebSocket implementation.
- kivikakk/htmlentities.zig - HTML5 entity data.
- meheleventyone/zig-wasm-test - A minimal WebAssembly example using Zig's build system.
- shritesh/zig-wasm-dom - Zig + WebAssembly + JS + DOM.
- shritesh/zigfmt-web - Zig fmt on the web.
- zigwasm/wasm-zig - Common WASM runtime binding to C API.
- zigwasm/wasmer-zig - Bindings for the Wasmer WebAssembly runtime.
- zigwasm/wasmtime-zig - Bindings of Wasmtime.
- batiati/mustache-zig - Mustache implementation.
System tools
- pbui-project/pbui-main - BSD/Linux core utilities written in Zig.
- hspak/brightnessztl - A CLI to control device backlight.
- thejoshwolfe/hexdump-zip - Produce an annotated hexdump of a zipfile.
- kubkon/zacho - Zig's Mach-O parser.
Zig development tools
- marler8997/zigup - Download and manage zig compilers.
- korandoru/setup-zig - Set up a specific version of Zig environment on GitHub Actions.
Package managers
- zigtools/zpm - Unofficial Zig package manager.
- mattnite/gyro - Package manager with an index, build runner, and build dependencies.
- nektro/zigmod - Zig package manager.
- cheetah/asdf-zig - Zig plugin for the ASDF package manager.
Parser
- darithorn/zig-toml - A TOML parser.
- chwayne/rem - An HTML parsing library.
- goto-bus-stop/ziguid - GUID parsing/stringifying.
- Hejsil/zig-clap - Simple command line argument parsing library.
- sam701/zig-cli - Package for building command line apps.
- kivikakk/libpcre.zig - Bindings to libpcre for Perl-compatible regular expressions.
- kivikakk/koino - CommonMark/GitHub Flavored Markdown parser and HTML renderer.
- kubkon/zig-yaml - YAML parser.
- sreehax/zig-ini - .ini parser.
- Nulo/ini-parser - .ini parser.
- tiehuis/zig-regex - A regex implementation.
- tiehuis/zig-ryu - Port of ryu.
- Vexu/zuri - URI parser.
- vi/zigmkv - Matroska/webm (mkv) parser.
- winksaville/zig-parse-args - Parse command line arguments.
- winksaville/zig-parse-number - Implement ParseNumber which can parse any TypeId.Int or TypeId.Float.
- gernest/base32 - Base32 encoding/decoding.
- caolan/zig-netstring - Netstring parser.
- Arwalk/zig-protobuf - Implementation of Protocol Buffers v3 leveraging Zig's comptime.
- iddev5/inon - Data configuration file format.
- naneros/ztoml - TOMLv1.0.0 parser and convert TOML to JSON.
Learning resources
- belse-de/zig-tut - A collection of small projects and tutorials to learn Zig.
- Sobeston/ziglearn - Zig learning resources.
Other
- All Your Codebase - Development status of Zig and its' ecosystem.
- zig.pm - A community-maintained repository of Zig packages.
- hspak/geteltorito-zig - Geteltorito re-write in Zig.
- momumi/x86-zig - Library for assembling x86.
- nrdmn/ilo_license_key - ILO license key library.
- vegecode/svd2zig - Convert System View Description (svd) files to Zig headers for baremetal development.
- mqttiotstuff/iotmonitor - MQTT IotMonitor tools, save time to monitor mqtt agents or devices.
- ve-nt/outfieldr - TLDR client.
- kubkon/zig-ios-example - Minimal
build.zig
for targeting iOS. - ynuwenhof/zigbraten - Proof of concept internal cheat for Cube 2: Sauerbraten.