Zig Programming Language

157 readers
1 users here now

A lemm.ee community for Zig!

founded 1 year ago
MODERATORS
1
 
 

A linter for Zig with its own semantic analyzer

2
 
 

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!

3
 
 

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

4
 
 

An alternative to ZLS

5
 
 

From the README:

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

6
 
 

An Entity Component System API for Zig

7
 
 

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.

8
 
 

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.
9
 
 

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

10
 
 

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.

11
 
 

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

12
 
 

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

13
 
 

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.

14
 
 

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

Read all about it in the linked blog post

15
 
 

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

This one is also potentially cross language.

16
 
 

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.
17
 
 

A couple of promising new ones have popped up:

https://zigistry.dev/

https://ziglist.org/

18
 
 

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

19
 
 

The principles from the book Crafting Interpreters by Bob Nystrom, but in Zig

20
 
 

Convenience functions for easy integration with AFL++ for both Zig and C/C++ programmers!

21
 
 

A package manager for installing linux programs that are self contained

22
 
 

A package manager for installing linux programs that are self contained

23
 
 

From the README:

Provides a package to build/run GNU's make program.

The primary use case for this project is to facilitate "incremental ports" to the Zig build system. Start with a project by building it with Make then incrementally transfer parts of it to build.zig while maintaining a working build that can be tested throughout. It's not recommended for projects to use this package long term.

24
 
 

From the README:

y3 is a wrapper for yabai that attempts to emulate i3 behavior and adds additional logic to improve the experience. It may not match 1:1, please let me know if something is missing or incorrect.

25
 
 

From the README:

This is a wrapper for CSFML. Theres no problem importing CSFML in Zig, but the resulting code can be a little bit messy. My goal is to make things close enough to SFML, with nice methods.

view more: next ›