Zig Programming Language

168 readers
3 users here now

A lemm.ee community for Zig!

founded 1 year ago
MODERATORS
1
 
 

From the README:

Simple and fast general purpose work queue. The beauty of Beanstalkd is its absolute simplicity.

beanstalkz is a Zig client to beanstalkd

2
 
 

Ghostty, a terminal emulator written in Zig, just hit 1.0. Here's the HN discussion: https://news.ycombinator.com/item?id=42517447

3
 
 

From the README:

A high-performance bleeding edge Discord library in Zig, featuring full API coverage, sharding support, and fine-tuned parsing

Sharding Support: Ideal for large bots, enabling distributed load handling. 100% API Coverage & Fully Typed: Offers complete access to Discord's API with strict typing for reliable and safe code. High Performance: Faster than whichever library you can name (WIP) Flexible Payload Parsing: Supports payload parsing through both zlib and zstd*. Proper error handling

4
 
 

From the README:

Commy is a small utility used to connect and monitor serial, UART or COM port devices.

Commy runs on Mac, Linux and Windows. Windows support is experimental.

Does (some of) the same things as tio, minicom, screen, miniterm.py, zcom, PuTTY, etc.

5
 
 

FFI and C interop and how to do it safely from Zig

6
 
 

A minimal terminal Tetris written in Zig

7
 
 

From the README:

A collection of small modules implemented in the Zig programming language.

Modules

Each module has its own repo, for standalone use case, see the links below.

8
 
 

A linter for Zig with its own semantic analyzer

9
 
 

From the README:

A fully customizable, drop-in replacement for std.Options.LogFn with support for multiple file logging, buffering, colors (NO_COLOR supported), time and mutex!

10
 
 

An interesting blog post about using the Zig toolchain for Nintendo 3DS homebrewing.

11
 
 

An alternative to ZLS

12
 
 

From the README:

Cross-platform utility module for Zig to open native dialogs for the filesystem, message boxes, color-picking.

13
 
 

An Entity Component System API for Zig

14
 
 

From the README:

objective-zig is a work-in-progress Objective-C runtime and auto generated collection of Objective-C frameworks in zig. You can find the bindings generator at objective-zig-gen. These bindings are not ready. See the notice at the bottom of the README.

15
 
 

From the README:

This repository contains:

  • wire: a Zig module that defines types for Wayland's wire format and functions to serialize and deserialize messages.
  • shimizu-scanner: a command to take Wayland XML protocol descriptions and turn them into Zig types.
  • core: The Wayland core protocol as a Zig module, generated by shimizu-scanner
  • shimizu: A Zig module that provides higher level Connection and Proxy types.
16
 
 

From the README:

Cubyz is a 3D voxel sandbox game (inspired by Minecraft).

Cubyz has a bunch of interesting/unique features such as:

Level of Detail (→ This enables far view distances.) 3D Chunks (→ There is no height or depth limit.) Procedural Crafting (→ You can craft anything you want, and the game will figure out what kind of tool you tried to make.)


Written in Zig, of course

17
 
 

From the README:

A delightful, statically typed programming language for writing reliable software. veb features algebraic data types, pattern matching, generics, classes (without inheritance), traits, flow-sensitive typing with type narrowing, trait-driven operator overloading and modules. Ergonomic features such as pipe and concat operators are also supported. Currently, the language runtime executes on a custom register-based virtual machine written in Zig.

18
 
 

PEM/DER reader, written in Zig. Currently supports elliptic curve private and public keys.

19
 
 

From the README: A small Zig module, as a convenience for writing WebAssembly plugins for Typst

20
 
 

From the README:

HypergraphZ - A Hypergraph Implementation in Zig

GitHub Actions Workflow Status

HypergraphZ is a directed hypergraph implementation in Zig (https://en.wikipedia.org/wiki/Hypergraph):

  • Each hyperedge can contain zero, one (unary) or multiple vertices.
  • Each hyperedge can contain vertices directed to themselves one or more times.

Usage

Add hypergraphz as a dependency to your build.zig.zon:

zig fetch --save https://github.com/yamafaktory/hypergraphz/archive/<commit-hash>.tar.gz

Add hypergraphz as a dependency to your build.zig:

const hypergraphz = b.dependency("hypergraphz", .{
    .target = target,
    .optimize = optimize,
});
exe.root_module.addImport("hypergraphz", hypergraphz.module("hypergraphz"));

Documentation

The latest online documentation can be found here.

21
 
 

Zig•EM is a novel programming framework for resource-constrained embedded systems.

Read all about it in the linked blog post

22
 
 

Since zig has good cross platform compiler support, libraries that improve cross platform support are also interesting.

This one is also potentially cross language.

23
 
 

From the README:

Key Features

  • Simple and straightforward to use thanks to built-in reflections.
  • Just define a struct and accessing it's fields.
  • Supports recursive struct.
  • Deinitialization is handled for you, just call deinit() and you are done.
  • Fields are automatically parsed based on field type.
24
 
 

A couple of promising new ones have popped up:

https://zigistry.dev/

https://ziglist.org/

25
 
 

Z80 chip emulator with classical games such as Pac-Man bundled

view more: next ›