Zigtoberfest 2025

For those who might be interested, Zigtoberfest is returning to Munich on the 25th of October 2025.

For more info: https://zigtoberfest.de

You can find the talks of Zigtoberfest 2024 on youtube: https://m.youtube.com/@zigtoberfest/videos. The audio quality isn’t that good but I’ve already invested in better microphones.

25 Likes

I’ve just published the agenda for this year: Zigtoberfest.

4 Likes

Live in half an hour:

6 Likes

Are the examples from Andrew available somewhere? The talks were awesome and it’s a pleasure to see how fast Zig is evolving and bringing so much on the table.

2 Likes

I’m not sure but I think you’ll be able to try it out with the next release.

1 Like

The talk “Send all your private data to ChatGPT” by Frank Denis has been published on YouTube.

Abstract

A couple of weeks ago, my cloud provider bill suddenly and unexpectedly went through the roof. To react quickly and figure out what was going on, I did what anyone would do in 2025: I sent the server logs to ChatGPT and asked it to analyze them and tell me what to do.

Of course, these logs contained a ton of private information that should never be shared with third parties, but whatever. Just before that, I had already used an MCP server to get insights about another service, using private data as well. So I was probably already on my way to hell.

Or maybe not.

In this talk, I’ll introduce techniques for using untrusted third-party services to analyze private information without ending up burning in hell.

About Frank

I maintain a few things in Zig as @jedisct1 on GitHub and in the std.crypto namespace of the Zig standard library.

19 Likes

Nice article!

I think example 7 is slightly misleading. It is only correct because the io.sleep(.fromSeconds(1), .awake) catch {}; line does a lot of heavy-lifting by ensuring that the error and success code paths are the same.

If there was a try after the allocation (for example if someone wrote try io.sleep(), which is very natural to do) then we would need to also add an errdefer gpa.free(copied_string) or something like that.

This particular example is fine (canceling sleep() is just a shorter sleep) but usually functions creating resources do not return the resource if an error happened inside – they return an error. I think example 7 would be less magical if it handled the io.sleep() errors explicitly.

4 Likes

Yes that’s a great point. I noticed that just after publishing the article.

It’s always a challenge to balance making the examples realistic vs making them minimal and thus helpful for demonstration.

8 Likes