Hey folks, I thought about making a post collecting ideas for really big projects that could be cool to do with Zig. Kind of like the other side of the spectrum from the “beginner project ideas” posts. Feel welcome to reply with other ideas, maybe this post can inspire some people.
Of course keep in mind that there will always be n alternatives in m different languages for each project.
Layouting engine
A library that calculates the sizes and positions of UI elements (boxes), typically implements the Flexbox, Grid and Block layout algorithms. Notable examples are taffy (Rust, it powers Bevy, Zed and is used in CosmicDE) and yoga (C++, from facebook)
Reverse Proxy
There are many reverse proxies out there, with nginx probably on top. A couple years ago Cloudflare came out with leaving nginx behind cause they hit some limitations and built their own in Rust called Pingora (also some shenanigans with nginx lead to a couple of forks). This kind of projects is a great fit for languages like C, C++, Rust and Go, so Zig will fit in nicely.
Raft
Raft is a consensus algorithm with leader election and log replication. At this point it is well used in several projects. In particular it powers etcd
used by kubernetes and recently Kafka introduced KRaft, their own implementation of Raft, as an alternative of Zookeeper, used for metadata management.
Container Runtime
Zig can be great for any container-related project, not just runtimes. It is a field dominated by Go but some alternatives are present, such as youki (in Rust), crun (in C and also the most performant iirc). Also the many projects that work around containers are always either in Rust or Go (like runtime monitors, builders, etc). We apply this also to WebAssembly, but there is actually a Wasm runtime being built with Zig!
API Gateway
Well this does a lot of things. For what I know 2 big players here are Kong (made in Go) and Apache Apisix (I think in Lua?). From this we could just extract something like a Rate Limiter to implement in Zig.
Message Broker
A system to send and receive messages between services. There are ton of message brokers at this point. A few: Apache Kafka (in Java/Scala), Redis, RabbitMQ (in Erlang, <3 BEAM btw) and NATS (in Go) which I like a lot. A NATS client in Zig would be a very nice project which it’s currently lacking.
Game Engine
Well here we have a couple of projects going on for Zig in the gamedev scene. I’m pretty sure over the years Zig engines will pop up more and more. The bigger problem is doing the games more than the engines.
I had fun thinking about possible big projects to do in Zig. Suggest more without thinking it would be too impossible or the space is too saturated. I was very biased with the kind of projects cause I’m doing a phd in distributed systems and serverless computing (zig FaaS platform anyone?) so feel free to go over completely different stuff.