Zig Programming Language

168 readers
3 users here now

A lemm.ee community for Zig!

founded 1 year ago
MODERATORS
26
 
 

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

27
 
 

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

28
 
 

A package manager for installing linux programs that are self contained

29
 
 

A package manager for installing linux programs that are self contained

30
 
 

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.

31
 
 

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.

32
 
 

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.

33
 
 

zigverm (previously zigvm) is a version manager for Zig

Change log: https://github.com/AMythicDev/zigverm/blob/main/CHANGELOG.md#v030-2024-06-26

34
 
 

Zig library which implements tls 1.2 and tls 1.3 protocol.

35
 
 

Provides compatibility with Zig 0.13.0

36
 
 

Makes integrating Zig projects with GitHub Actions easy and uses mirrors to reduce load on servers

37
 
 

Contains plenty of changes and upgrades to LLVM 18.1.7

Go read the release notes

38
 
 

From the README:

Hexdump is designed to replace the standard Hexdump command. If you feel uncomfortable replacing it, simply rename the binary to something else.

Features

  • ASCII sidebar
  • Skipping bytes
  • Specified length
  • Multiple formats
  • Colored output
  • Output to file
39
 
 

Zigar is a software tool set that lets you utilize Zig code in your JavaScript project.

40
 
 

From the README:

JSON library for inspecting arbitrary values. Optionally accepts trailing commas.

Fully passes https://github.com/nst/JSONTestSuite.

41
 
 

From the blog:

Sometimes, programming projects are too easy and boring. Sometimes, they're too hard, never ending or producing subpar results.

This past week I had the pleasure of completing a project that felt like maximum difficulty - only possible because I am at the top of my game, using a programming language designed for making perfect software. This problem threw everything it had at me, but I rose to the challenge and emerged victorious.

What a rush.

In this blog post I'll dig into the technical implementation as well as provide the Zig Progress Protocol Specification.

42
 
 

From the README:

Auto-generated Zig bindings for the sokol headers.

For Zig version 0.12.0 and 0.13.0-dev

In case of breaking changes in Zig, the bindings might fall behind. Please don't hesitate to ping me via a Github issue, or even better, provide a PR :)

Support for stable Zig versions is in branches (e.g. zig-0.12.0), those versions are 'frozen in time' though.

43
 
 

From the README:

An effortless command-line argument parser for Zig.

Features

  • Zero allocations.
  • Declaratively define your command as a plain Zig type.
  • Single-function API.
  • Multi-level subcommands.
  • Automatic help message generation at comptime.
44
 
 

From the README:

  • Simple to use: Minimal and customizable keymaps with vim binding support.
  • Image Previews: Preview images with Kitty terminal.
  • File Previews: Preview contents of files directly in the terminal.
  • Configurable Options: Customize settings via an external configuration file.
45
 
 

From the README:

Zig currently does not have a built-in, general purpose Set data structure at this point in time. Until it does, try this!

Rationale: It may be common knowledge that a dictionary or map or hashset can be used as a set where the value is basically void. While this is true, there's a lot to think about in terms of supporting all the common set operations in a performant and correct way and there's no good reason why a common module for this can't exist. After studying the Zig stdlib, I'm hoping this implementation can fill that gap and provide some value.

46
 
 

From the README:

This library is a friendly refactor of TigerBeetle's flags module that adds support for:

  • subcommand specific help messages; and
  • short options (-k=v).
47
 
 

From the README:

arbor

For the future of plugin development

Goals

  • Dead-simple plugin development. Write <= 100 lines of code and have a runnable blank-slate plugin.

  • Ideally only require Zig as a toolchain dependency, not as a programming language. You should be able to write plugins in C/C++/whatever and easily link that code to Arbor via a C API and the Zig build system.

    • Could also have a get_zig.sh that will download latest stable Zig if you don't already have it
  • Easy cross-compilation. Compile to Mac/Linux/Windows from Mac/Linux/Windows, batteries included.

  • Cross-platform graphics. A simple software renderer (like Olivec), but also native graphics programming, potentially using something like sokol, or making a thin wrapper around Direct2D/CoreGraphics for cross-platform graphics abstraction, giving the programmer a simple choice with little-to-no platform-specific considerations.

  • Simple, declarative UI design. Possibly with the option of using a custom CSS-like syntax (or Ziggy) to declare, arrange, and style UI widgets at runtime or compile-time, all compiling to native code--not running in some god-forsaken web browser embedded in a plugin UI 🤮

Have:

  • A nice abstraction layer over plugin APIs which should lend itself nicely to extending support to other APIs

  • Easy comptime parameter generation

  • Basic CLAP audio plugin supporting different types of parameters, sample-accurate automation

  • A janky VST2 implementation that works in Reaper and mostly works in other DAWs

  • Simple, portable software rendering using Olivec and a custom text rendering function with a bitmap font

48
 
 

From the README:

Ly is a lightweight TUI (ncurses-like) display manager for Linux and BSD.

[...]

Ly should work with any X desktop environment, and provides basic wayland support (sway works very well, for example).

49
 
 

From the README:

A Zig wrapper around md4c for parsing Markdown.

Exposes a single function that puts a parser type together from comptime-known Zig functions. The generalisation to using vtables is left as an exercise to the user.

50
 
 

From the README:

This library provides a simple and efficient way to generate and manipulate UUIDs (Universally Unique Identifiers) in Zig.

Features

  • Generate UUIDs of all versions (1, 3, 4, 5)
  • Parse UUIDs from strings
  • Convert UUIDs to strings, 128-bit integers, and byte-arrays
  • Access to parts of UUID (time_low, time_mid, node, etc.)
view more: ‹ prev next ›