└── readme.md /readme.md: -------------------------------------------------------------------------------- 1 | # Awesome Zig 2 | 3 | ## Algorithms and data structures 4 | - [BarabasGitHub/LZig4](https://github.com/BarabasGitHub/LZig4) Implementing lz4 in zig. 5 | - [DutchGhost/ArrayVec](https://github.com/DutchGhost/ArrayVec) An array with a vector feeling in Zig 6 | - [emekoi/deque.zig](https://github.com/emekoi/deque.zig) a lock free chase-lev deque for zig 7 | - [kristoff-it/zig-cuckoofilter](https://github.com/kristoff-it/zig-cuckoofilter) Production-ready Cuckoo Filters for any C ABI compatible target. 8 | - [marijnfs/zigtimsort](https://github.com/marijnfs/zigtimsort) TimSort implementation for Zig 9 | - [Sahnvour/zig-containers](https://github.com/Sahnvour/zig-containers) A container library for Zig. 10 | - [Srekel/zig-sparse-set](https://github.com/Srekel/zig-sparse-set) Sparse sets for zig, supporting both SOA and AOS style 11 | - [v1zix/zig-string](https://github.com/v1zix/zig-string) Strings for Zig 12 | 13 | ## Allocators 14 | - [dbandstra/zig-hunk](https://github.com/dbandstra/zig-hunk) Basic stack allocator for Zig 15 | - [fengb/zee_alloc](https://github.com/fengb/zee_alloc) tiny Zig allocator primarily targeting WebAssembly 16 | - [mdsteele/ziegfried](https://github.com/mdsteele/ziegfried) A general-purpose memory allocator for Zig 17 | - [suirad/Seal](https://github.com/suirad/Seal) An allocator that wraps another allocator and detects if memory is leaked after usage 18 | 19 | ## Audio 20 | - [dbandstra/zang](https://github.com/dbandstra/zang) Audio synthesis for Zig 21 | - [dbandstra/zig-wav](https://github.com/dbandstra/zig-wav) 22 | - [Hejsil/zig-midi](https://github.com/Hejsil/zig-midi) 23 | 24 | ## Bootables 25 | - [AndreaOrru/zen](https://github.com/AndreaOrru/zen) Experimental operating system written in Zig 26 | - [andrewrk/clashos](https://github.com/andrewrk/clashos) multiplayer arcade game for bare metal Raspberry Pi 3 B+ 27 | - [andrewrk/HellOS](https://github.com/andrewrk/HellOS) "hello world" x86 kernel example 28 | - [DorianXGH/Lukarnel](https://github.com/DorianXGH/Lukarnel) A microkernel in zig with rust microservices 29 | - [iguessthislldo/georgios](https://github.com/iguessthislldo/georgios) Hobby Operating System 30 | - [jzck/kernel-zig](https://github.com/jzck/kernel-zig) πŸ’Ύ hobby x86 kernel zig 31 | - [liampwll/zig-efi-os](https://github.com/liampwll/zig-efi-os) 32 | - [markfirmware/zig-bare-metal-microbit](https://github.com/markfirmware/zig-bare-metal-microbit) Bare metal microbit program written in zig 33 | - [markfirmware/zig-bare-metal-raspberry-pi](https://github.com/markfirmware/zig-bare-metal-raspberry-pi) Bare metal raspberry pi program written in zig 34 | - [MasterQ32/RetrOS](https://github.com/MasterQ32/RetrOS) A retro-style gaming console running on bare x86 metal written in Zig 35 | - [nrdmn/uefi-examples](https://github.com/nrdmn/uefi-examples) UEFI examples in Zig 36 | - [nrdmn/uefi-paint](https://github.com/nrdmn/uefi-paint) UEFI-bootable touch paint app 37 | - [SamTebbs33/pluto](https://github.com/SamTebbs33/pluto) An x86 kernel written in Zig 38 | - [sjdh02/trOS](https://github.com/sjdh02/trOS) tiny aarch64 baremetal OS thingy 39 | - [tralamazza/embedded_zig](https://github.com/tralamazza/embedded_zig) minimal Zig embedded ARM example (STM32F103 blue pill) 40 | - [yvt/zig-armv8m-test](https://github.com/yvt/zig-armv8m-test) Example Zig-based app for Armv8-M + TrustZone 41 | - [ZeeBoppityZagZiggity/ZBZZ.OS](https://github.com/ZeeBoppityZagZiggity/ZBZZ.OS) An operating system built with RISCV and Zig 42 | 43 | ## Compilers and interpreters 44 | - [CurtisFenner/zsmol](https://github.com/CurtisFenner/zsmol) The new Smol compiler and reference. 45 | - [squeek502/zua](https://github.com/squeek502/zua) An implementation of Lua 5.1 in Zig, for learning purposes 46 | - [Vexu/bog](https://github.com/Vexu/bog) Small, strongly typed, embeddable language. 47 | 48 | ## Database 49 | - [kristoff-it/redis-cuckoofilter](https://github.com/kristoff-it/redis-cuckoofilter) Hashing-function agnostic Cuckoo filters for Redis 50 | - [kristoff-it/zig-okredis](https://github.com/kristoff-it/zig-okredis) Zero-allocation Client for Redis 6+ 51 | - [leroycep/sqlite-zig](https://github.com/leroycep/sqlite-zig) 52 | - [vrischmann/zig-cassandra](https://github.com/vrischmann/zig-cassandra) Client for Cassandra 2.1+ 53 | 54 | ## Editor plugins 55 | - [ice1000/intellij-zig](https://github.com/ice1000/intellij-zig) The IntelliJ IDEA plugin for the Zig programming language β”—πŸ˜ƒβ”› β”πŸ˜ƒβ”“ β”—πŸ˜ƒβ”› β”πŸ˜ƒβ”“ 56 | - [isaachier/ztags](https://github.com/isaachier/ztags) ctags implementation for Zig written in Zig 57 | - [Tetralux/sublime-zig](https://github.com/Tetralux/sublime-zig) My own, more lightweight, syntax highlighting for the Zig Programming Language. 58 | - [ziglang/sublime-zig-language](https://github.com/ziglang/sublime-zig-language) Zig language support for Sublime Text 59 | - [ziglang/vscode-zig](https://github.com/ziglang/vscode-zig) Zig language support for VSCode 60 | - [ziglang/zig-mode](https://github.com/ziglang/zig-mode) Zig mode for Emacs 61 | - [ziglang/zig.vim](https://github.com/ziglang/zig.vim) Vim configuration for Zig 62 | - [zigtools/zls](https://github.com/zigtools/zls) Zig LSP implementation + Zig Language Server 63 | 64 | ## Emulators 65 | - [emekoi/c8](https://github.com/emekoi/c8) chip 8 emulator in zig 66 | - [fengb/fundude](https://github.com/fengb/fundude) Gameboy emulator: Zig -> wasm 67 | - [GrooveStomp/chip8-zig](https://github.com/GrooveStomp/chip8-zig) CHIP-8 emulator in Zig 68 | - [isaachier/gbemu](https://github.com/isaachier/gbemu) Zig Game Boy emulator 69 | - [sourgrasses/fishnchips](https://github.com/sourgrasses/fishnchips) [WIP] 🐟 CHIP-8 emulator implemented in Zig for leeeearning 70 | - [sourgrasses/ichigo](https://github.com/sourgrasses/ichigo) [WIP] πŸ“ Virtual Boy emulator 71 | - [Srekel/zag](https://github.com/Srekel/zag) Game dev project written in Zig and C 72 | - [tiehuis/zig-gameboy](https://github.com/tiehuis/zig-gameboy) A gameboy emulator in zig 73 | 74 | ## Game tools and libraries 75 | - [danielabbott/Game-Engine](https://github.com/danielabbott/Game-Engine) 76 | - [emekoi/ziglet](https://github.com/emekoi/ziglet) a small zig game library 77 | - [kristianhasselknippe/zig-game-engine](https://github.com/kristianhasselknippe/zig-game-engine) Learning zig through game engine 78 | - [TM35-Metronome/metronome](https://github.com/TM35-Metronome/metronome) A set of tools for modifying and randomizing PokΓ©mon games 79 | - [TM35-Metronome/tm35-nds](https://github.com/TM35-Metronome/tm35-nds) A library for working with Nintendo DS roms 80 | - [user00e00/sudokuinzig](https://github.com/user00e00/sudokuinzig) 81 | - [wendigojaeger/ZigGBA](https://github.com/wendigojaeger/ZigGBA) Work in progress SDK for creating Game Boy Advance games using Zig programming language. 82 | 83 | ## Games 84 | - [Akuli/curses-minesweeper](https://github.com/Akuli/curses-minesweeper) Minesweeper game written in curses with zig 85 | - [andrewrk/clashos](https://github.com/andrewrk/clashos) multiplayer arcade game for bare metal Raspberry Pi 3 B+ 86 | - [andrewrk/tetris](https://github.com/andrewrk/tetris) A simple tetris clone written in zig programming language. 87 | - [dbandstra/oxid](https://github.com/dbandstra/oxid) Arcade style game written in Zig 88 | - [fabioarnold/snake-zig](https://github.com/fabioarnold/snake-zig) 89 | - [Stenodyon/blink](https://github.com/Stenodyon/blink) A game about building logic with lasers 90 | - [thejoshwolfe/legend-of-swarkland](https://github.com/thejoshwolfe/legend-of-swarkland) Hack-n-slash roguelike inspired by NetHack 91 | - [tiehuis/zstack](https://github.com/tiehuis/zstack) Line-race tetris mode in Zig 92 | - [kooparse/zalgebra](https://github.com/kooparse/zalgebra) Linear algebra library for games and real-time computer graphics. 93 | 94 | ## GUI 95 | - [andrewrk/zig-mandelbrot-gl](https://github.com/andrewrk/zig-mandelbrot-gl) mandelbrot set in zig 96 | - [andrewrk/zig-sdl](https://github.com/andrewrk/zig-sdl) self-contained SDL2 package for Zig 97 | - [andrewrk/zig-vulkan-triangle](https://github.com/andrewrk/zig-vulkan-triangle) simple triangle displayed using vulkan, glfw, and zig 98 | - [cshenton/learnopengl](https://github.com/cshenton/learnopengl) https://learnopengl.com tutorials ported to zig 99 | - [dbandstra/zig-pcx](https://github.com/dbandstra/zig-pcx) Load and save PCX images in Zig 100 | - [ifreund/river](https://github.com/ifreund/river) dynamic wayland compositor that takes inspiration from dwm and bspwm 101 | - [Nelarius/weekend-raytracer-zig](https://github.com/Nelarius/weekend-raytracer-zig) A Zig implementation of the "Ray Tracing in One Weekend" book 102 | - [SpexGuy/Zig-Gltf-Display](https://github.com/SpexGuy/Zig-Gltf-Display) A program that displays glTF files using Vulkan, written in Zig. 103 | - [tiehuis/zig-raytrace](https://github.com/tiehuis/zig-raytrace) simple raytracer in zig 104 | - [tiehuis/zig-sdl2](https://github.com/tiehuis/zig-sdl2) SDL2 bindings for Zig 105 | - [winksaville/zig-3d-soft-engine](https://github.com/winksaville/zig-3d-soft-engine) An attempt to create a 3D engine in software using zig. 106 | 107 | ## Misc libraries 108 | - [BraedonWooding/Lazy-Zig](https://github.com/BraedonWooding/Lazy-Zig) Linq in Zig 109 | - [DutchGhost/maybeuninit](https://github.com/DutchGhost/maybeuninit) MaybeUninit in Zig. 110 | - [emekoi/log.zig](https://github.com/emekoi/log.zig) a thread-safe logging library for zig. 111 | - [gernest/time](https://github.com/gernest/time) 112 | - [kprotty/zap](https://github.com/kprotty/zap) A collection of zig libraries which provide interfaces over the system for writing high performance applications 113 | - [mlarouche/zigimg](https://github.com/mlarouche/zigimg) Zig library for reading and writing different image formats 114 | - [ziglibs/known-folders](https://github.com/ziglibs/known-folders) Provides access to well-known folders across several operating systems 115 | 116 | ## Network 117 | - [connectFree/ZigZag](https://github.com/connectFree/ZigZag) Noise Framework implementation in Zig Language for use in EVER/IP and WireGuard 118 | - [ducdetronquito/h11](https://github.com/ducdetronquito/h11) I/O-free HTTP/1.1 implementation inspired by hyper/h11 119 | - [euantorano/ip.zig](https://github.com/euantorano/ip.zig) A Zig library for working with IP Addresses 120 | - [lun-4/zigdig](https://github.com/lun-4/zigdig) naive dns client library in zig 121 | - [lun-4/ziget](https://github.com/lun-4/ziget) simple wget in zig without libc 122 | - [marler8997/netpunch](https://github.com/marler8997/netpunch) Outbound proxy protocol 123 | - [mstroecker/zig-robotstxt](https://github.com/mstroecker/zig-robotstxt) Lightweight docker image for serving a disallow robots.txt file using the zig programming language. 124 | - [Vexu/routez](https://github.com/Vexu/routez) Http server for Zig 125 | - [Vexu/zuri](https://github.com/Vexu/zuri) URI parser for Zig 126 | - [remeh/statsd-zig](https://github.com/remeh/statsd-zig) Basic DogStatsD UDP server 127 | 128 | ## System tools 129 | - [pbui-project/pbui-main](https://github.com/pbui-project/pbui-main) BSD/Linux core utilities written in Zig 130 | - [hspak/brightnessztl](https://github.com/hspak/brightnessztl) A CLI to control device backlight 131 | - [thejoshwolfe/hexdump-zip](https://github.com/thejoshwolfe/hexdump-zip) produce an annotated hexdump of a zipfile 132 | 133 | 134 | ## Other 135 | - [andersfr/zig-lsp](https://github.com/andersfr/zig-lsp) Language Server Protocol for Zig 136 | - [belse-de/zig-tut](https://github.com/belse-de/zig-tut) A collection of small projects and tutorials to learn ZIG; may it be inspiration for others as well. 137 | - [donpdonp/zootdeck](https://github.com/donpdonp/zootdeck) Zootdeck Fediverse GTK Desktop Reader 138 | - [fengb/zig-protobuf](https://github.com/fengb/zig-protobuf) 139 | - [gernest/base32](https://github.com/gernest/base32) base32 encoding/decoding for ziglang 140 | - [gernest/hoodie](https://github.com/gernest/hoodie) pure zig language server with swagger and bling bling 141 | - [Hejsil/zig-gc](https://github.com/Hejsil/zig-gc) A super simple mark-and-sweep garbage collector written in Zig. 142 | - [hspak/geteltorito-zig](https://github.com/hspak/geteltorito-zig) geteltorito re-write in Zig 143 | - [lun-4/zig-docsearch](https://github.com/lun-4/zig-docsearch) search over zig stdlib doc comments (with rudimentary html gen) 144 | - [MasterQ32/ZigPaint](https://github.com/MasterQ32/ZigPaint) A simple paint application written in Zig. Used to create an OpenGL loader/wrapper and a minimal UI system. 145 | - [meta-leap/langserv](https://github.com/meta-leap/langserv) LSP implementation lib plus demo / dummy language server showcasing usage (WIP) 146 | - [momumi/x86-zig](https://github.com/momumi/x86-zig) library for assembling x86 in zig (WIP) 147 | - [nrdmn/ilo_license_key](https://github.com/nrdmn/ilo_license_key) iLO license key library 148 | - [vegecode/svd2zig](https://github.com/vegecode/svd2zig) Convert System View Description (svd) files to Zig headers for baremetal development 149 | - [zigtools/zpm](https://github.com/zigtools/zpm) Unofficial Zig package manager 150 | - [Sobeston/ziglearn](https://github.com/Sobeston/ziglearn) Zig learning resources 151 | - [mqttiotstuff/iotmonitor](https://github.com/mqttiotstuff/iotmonitor) Zig MQTT IotMonitor tools, save time to monitor mqtt agents or devices 152 | 153 | 154 | ## Parser 155 | - [darithorn/zig-toml](https://github.com/darithorn/zig-toml) A TOML parser written in Zig 156 | - [ducdetronquito/hppy](https://github.com/ducdetronquito/hppy) The happy HTML parser α••( ᐛ )α•— 157 | - [gernest/url](https://github.com/gernest/url) 158 | - [goto-bus-stop/ziguid](https://github.com/goto-bus-stop/ziguid) GUID parsing/stringifying with zig 159 | - [Hejsil/zig-clap](https://github.com/Hejsil/zig-clap) Simple command line argument parsing library 160 | - [kivikakk/libpcre.zig](https://github.com/kivikakk/libpcre.zig) Bindings to libpcre for Perl-compatible regular expressions 161 | - [kivikakk/koino](https://github.com/kivikakk/koino) CommonMark/GitHub Flavored Markdown parser and HTML renderer 162 | - [m-r-hunt/tjp](https://github.com/m-r-hunt/tjp) 163 | - [prostomarkeloff/zigini](https://github.com/prostomarkeloff/zigini) Simple, small (~220 loc) library for parsing .INI files in Zig. 164 | - [tiehuis/zig-regex](https://github.com/tiehuis/zig-regex) A regex implementation for the zig programming language 165 | - [tiehuis/zig-ryu](https://github.com/tiehuis/zig-ryu) Zig port of https://github.com/ulfjack/ryu 166 | - [Vexu/zuri](https://github.com/Vexu/zuri) URI parser for Zig 167 | - [vi/zigmkv](https://github.com/vi/zigmkv) [wip] Matroska/webm (mkv) parser in Zig 168 | - [winksaville/zig-parse-args](https://github.com/winksaville/zig-parse-args) Parse command line arguments. 169 | - [winksaville/zig-parse-number](https://github.com/winksaville/zig-parse-number) Implement ParseNumber which can parse any TypeId.Int or TypeId.Float. 170 | - [demizer/markzig](https://github.com/demizer/markzig) Pure Zig Markdown Parser 171 | 172 | ## Web 173 | - [andrewrk/lua-in-the-browser](https://github.com/andrewrk/lua-in-the-browser) using zig to build lua for webassembly 174 | - [fengb/fundude](https://github.com/fengb/fundude) Gameboy emulator: Zig -> wasm 175 | - [fengb/zee_alloc](https://github.com/fengb/zee_alloc) tiny Zig allocator primarily targeting WebAssembly 176 | - [gernest/url](https://github.com/gernest/url) 177 | - [kivikakk/htmlentities.zig](https://github.com/kivikakk/htmlentities.zig) HTML5 entity data. 178 | - [meheleventyone/zig-wasm-test](https://github.com/meheleventyone/zig-wasm-test) A minimal Web Assembly example using Zig's build system. 179 | - [shritesh/zig-wasm-dom](https://github.com/shritesh/zig-wasm-dom) Zig + WebAssembly + JS + DOM 180 | - [shritesh/zigfmt-web](https://github.com/shritesh/zigfmt-web) zig fmt on the web 181 | - [Vexu/routez](https://github.com/Vexu/routez) Http server for Zig 182 | --------------------------------------------------------------------------------