Alternatives
Products that do what After a day of Zig – a review by a Rust enthusiast does
- 1IW
Sep 2025 · github.com
- 2TV
Dec 2025 · github.com
- 3ZT
I believe the best way to learn a language is by doing an in-depth project. This is my first Zig project intended for learning the ropes on publishing a Zig package. It turns out to be quite solid and performant. It might be a bit over-engineered. This little library is packed with the following features: - Building dependency graph from dependency data. - Performing topological sort on the dependency graph. - Generating dependence-free subsets for parallel processing. - Cycle detection and cycle reporting.
2025 · github.com
- 4LR
2023 · github.com
- 5ER
2023 · github.com
- 6AN
Hey HN! I'm excited to share a tool I've been working on - a native Hacker News reader built with Rust and egui. Here's a screenshot: https://github.com/haojiang99/hacker_news_reader/blob/main/s.... As a daily HN reader, I've always struggled with keeping track of interesting posts I want to read later. Browser tabs pile up, bookmarks get forgotten, and I lose track of what I've already read. I needed a way to: 1. Browse HN efficiently (across all sections - hot, new, show, ask, jobs, best) 2. Quickly mark posts as "todo" for later reading 3. Mark posts as…
2025 · github.com
- 7TC
May 2026 · github.com
- 8ZD
Hi everyone, I've made an open-source library for using design by contract (DbC) principles in the Zig programming language. It's called Zig-DbC, and it currently provides the following features: - A simple API to define preconditions, postconditions, and invariants. - Contracts are active in `Debug`, `ReleaseSafe`, and `ReleaseSmall` modes to catch bugs early. - All checks are removed at compile time in `ReleaseFast` mode for zero performance cost. - An optional mode to handle partial state changes in functions that return errors. - Transparent error handling that propagates errors from…
2025
- 9IM
An implementation of a dynamic programming language in Rust. Includes: Parser/Compiler, REPL, Virtual Machine, Bytecode Disassembler This started out as a learning project to teach myself Rust. It has grown into a decently substantial piece of software and I've learned quite a bit in the process! Some neat things: + A garbage collector that can store dynamically sized types without any double-indirection (i.e. I have my own Box implementation with manual alloc/dealloc) + The smart pointer used to reference GCed data is a thin pointer. The ptr metadata needed for DSTs is stored in…
2022 · github.com
- 10AE
2022 · crates.io
- 11EO
2024 · github.com
- 12RA
2019 · github.com
- 13TS
2024 · github.com
- 14LA
Hey HN, this is a small project myself and closer friends have been building on our free time (https://github.com/Dr-Nekoma/lyceum), it finally reached 0.1.0, we are open to feedback! The original idea was to experiment with Zig + Raylib, eventually we wrote a small server in Erlang as well. We started by first interacting with Erlang via its C bindings, but this eventually led to some of us to prototyping our own tooling to better integrate Zig types with Erlang, we called such tool "zerl" as its avaliable here…
2024 · github.com
- 15RO
2023 · github.com
- 16

- 17AF
2020 · github.com
- 18AM
"Game" is a stretch, but I put together this repo containing a pure Rust app which uses SDL2 and compiles to WASM (and can be run in a browser). Older resources were a bit out of date and a bit too verbose for my purposes, so here's a minimal working example.
2024 · github.com
- 19WL
I just sent out my 100th issue of Hacker Newsletter and announced my newest newsletter: Wayback Letter - http://www.waybackletter.com/ In either a daily or weekly version, you'll get links to great HN articles from the past five years. A great way to see how HN has grown and changed, plus see what was going on at different times. Lastly, there are a ton of great reads to learn from that I never saw the first go around. Would love to get feedback and my goal is to expand this past HN in the future.
2012
- 20ZP
I wanted something lighter than zig autodoc so I've implemented (and golfed a bit) a custom parser using parser combinators in JS. It's not 100% correct and it's also not meant to be, all I care about is if it can parse my own Zig code, not any valid Zig code. There are also some bugs, and I don't intend to support, nor develop this much further, consider it vaporware which you are free to fork and use it for something, or just have some fun reading the code and figuring out how it works (I certainly had a lot of fun implementing it - no LLMs, so it was a nice exercise too). BTW: I know it's…
Jan 2026 · github.com
- 21ZB
I created this a year or so ago but recently made updates and I thought people might like to know that it exists. I made this to easily send links or text to someone else verbally, like over the phone or over voice chat (which is what I made it for). The goal is to be able to tell the link to someone else without being ambiguous or needing to spell it out, so I grabbed the words off a Grade 5 level dictionary. I understand that the domain itself doesn’t qualify but I’m trying to get a better domain.
2013 · zigg.be
- 22FA
Hey HN, the is Chris, creator of FireDBG. We’ve been working on this debugger just about a year now. Time travel debugging isn’t a new concept, the new idea here is to use call tree visualisation to help us navigate the debug trace. It supports various Linux distros on x64 and macOS on x64 and M1. It’s only available for Rust right now, but we do want to bring this debugging experience to other programming languages. Please give it a try! Would love to know your thoughts. What’s your anecdote in debugging programs? My stupidity is usually in the form of: after a few hours of debugging, I…
2023 · firedbg.sea-ql.org
- 23AW
2018 · github.com
- 24IB
Doing dynamic dispatching in a strict static typing language is hard. Something as simple as, map.put("add", add); map.put("hello", hello); fn add(a: i32, b: i32) i32 { return a + b; } fn hello() []const u8 { return "Hello World"; } is impossible because the value type of key/value of the map needs to be the same but all the function types are different. Calling functions with different number of parameters, different parameter types, and different return type dynamically is difficult. Other languages either use dynamic typing, runtime reflection, macro, or passing in one big generic…
2025 · github.com
Ranked by how close each launch is in meaning, then by votes. Refine with a description →