Nov. 19, 2020, 3:20 a.m.

std.crypto.25519 & Async/Await ⚡ Zig SHOWTIME #18

Zig SHOWTIME

The Zig SHOWTIME Discord server
is now open for business!

JOIN NOW!

(From the Community Wiki Page)
The Zig SHOWTIME Discord server serves as a coordination tool for organizing the show, and as a place where people invested in the success of Zig can socialize and collaborate together on new projects. The main goal of this space is to create a community of creators (be it code, blogs, videos, or undefined), so that we can all make the most out of our Zig experience. Nobody is born knowing Zig so everyone is welcome to have fun in this server but, if you're unsure whether Zig is the right language for you, I recommend checking out first other Zig communities as they might be more focused on helping newcomers to the language.

The next episode of Zig SHOWTIME airs on
Saturday 21st of November!

Times for a few different timezones:
10:00am CST / 17.00 CET / 9:30pm IST / 12:00am SGT (Sun) / 1:00am JST (Sun)

Go to https://zig.show for more info or subscribe to the Zig SHOWTIME calendar (iCal) to have all episodes automatically added to your calendar.

Padding

So I ended the last Padding message by mentioning that FOSDEM was late with the announcement of which Dev Rooms got accepted and… nothing has changed, still waiting.

Work on the website continues, here you can find a preview, I’m streaming more development roughly every day and I’ve also recorded a video for YouTube where I talk about the Rust website redesign debacle. In 2018 Rust got a new website but there were a few problems with how everything was done and Mozilla ended up releasing a “retrospective” blog post earlier this year. Here’s a link to the video: https://youtu.be/23JCY0SQGIA

Links

nektro/zigmod

> package manager for Zig that supports packaging of both Zig and C code. currently supports Git and Mercurial for hosting

Another package manager for Zig, sweet!

ducdetronquito/requestz

An HTTP client for Zig! Here’s also a related thread on r/Zig.

prime31/zig-renderkit

> Cross platform Zig graphics backends with a 2D focus.

Strat to take over the world: make a Zig GUI library that overtakes Electron. That’s it. Just a GUI lib that is performant and not too hard to program in. I personally think that React (+ Redux) is a good model to take inspiration from, kinda like SwiftUI is doing.

brodeuralexis/zig-behaviour

An experimental library that helps modeling comptime interfaces.

zig-community/Zig-Showdown

A 3D shooter in Zig? As a community effort? Ok I’m uninstalling Apex then!

New Episode

25519 (<- yes, that’s a short and enigmatic title)

By Frank Denis

>A journey to std.crypto.25519.*, in which we’ll talk about fast and safe finite field arithmetic, elliptic curves, public key cryptography, and how these things have been implemented in Zig. This is going to be a very accessible presentation, no math background required.

So Frank is not only adding a lot of high quality crypto implementations to the Zig standard library, but now he’s also giving talks to introduce people to the discipline. He’s truly giving back a lot to the community, even if he’s not doubling our bitcoins.


Why Async/Await in Zig is not Easy

By Loris Cro

So you watched a couple presentations by Andrew, read the docs and you can understand async/await examples in isolation, but you still don’t understand how the whole thing works. The worst is when that happens after you’ve been using async/await in some higher-level language for a long time and were pretty productive with it. What happened? In this talk I’ll try to answer this question.



Last Episode

Here’s a recap of the talks in the last episode, in case you missed it. The full episode is available on YouTube.

Runtime polymorphism: why, how? (YouTube Link)

By Alex Naskos

> In this talk, we are going to be discussing runtime polymorphism (also known as dynamic dispatch). The focus will be on comparing various implementations in zig and showing the differences in emitted code and in usability.

There’s a lot that you can achieve with Zig if you take a moment to learn the details and maybe sprinkle a bit of comptime magic on it. This means that runtime interfaces / dynamic dispatch can be implemented in userland, and that’s what Alex is going to talk about.

Can you imagine how lame it would be if Zig hardcoded in the language one specific implementation of interfaces when you have this power at your disposal?


Virtuosismi d’espressione in Zig (YouTube Link)

By Loris Cro

Let’s talk about virtuosity using Zig expressions. This is going to be a very short talk pointing out clever things that you can do with expressions in Zig.

Also, if you don’t know what’s a virtuoso, no worries, I’ll explain that too :)



See you at showtime,
Loris Cro

You just read issue #11 of Zig SHOWTIME. You can also browse the full archives of this newsletter.

Brought to you by Buttondown, the easiest way to start and grow your newsletter.