<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Zig on BradCypert.com</title>
    <link>https://www.bradcypert.com/tags/zig/</link>
    <description>Recent content in Zig on BradCypert.com</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 01 Feb 2026 20:41:18 -0500</lastBuildDate>
    <atom:link href="https://www.bradcypert.com/tags/zig/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Interfaces in Zig</title>
      <link>https://www.bradcypert.com/interfaces-in-zig/</link>
      <pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate>
      <guid>https://www.bradcypert.com/interfaces-in-zig/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;em&gt;Zig does not have an &lt;code&gt;interface&lt;/code&gt; keyword — and that’s a feature, not a bug.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Zig’s design deliberately avoids baking object-oriented abstractions into the language. Instead, it gives you a small set of powerful primitives — structs, pointers, comptime, and function pointers — and lets &lt;em&gt;you&lt;/em&gt; decide when abstraction is worth the cost.&lt;/p&gt;&#xA;&lt;p&gt;Yet if you look closely at Zig’s standard library, you’ll quickly notice something interesting: &lt;strong&gt;interfaces are core to several commonly used parts of the standard library&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using C libraries in Zig</title>
      <link>https://www.bradcypert.com/using-c-libraries-in-zig/</link>
      <pubDate>Sat, 08 Nov 2025 00:00:00 +0000</pubDate>
      <guid>https://www.bradcypert.com/using-c-libraries-in-zig/</guid>
      <description>&lt;p&gt;Hey, everyone! Welcome to this tutorial where we&#39;ll explore one of Zig&#39;s most powerful features. Today, we&#39;re going to see how easy it is to use existing C libraries directly from Zig code.&lt;/p&gt;&#xA;&lt;h2 id=&#34;why-c-interoperability-matters&#34;&gt;Why C Interoperability Matters&lt;/h2&gt;&#xA;&lt;p&gt;One of the things that got me really excited about a different language, Clojure, when I was learning it was that although the Clojure ecosystem felt small, I had interoperability with anything that ran on the JVM. So you could interop with Java, Scala, eventually Kotlin after Kotlin really kind of caught on. It was great.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Zig&#39;s release modes</title>
      <link>https://www.bradcypert.com/zigs-release-modes/</link>
      <pubDate>Tue, 09 Sep 2025 00:00:00 +0000</pubDate>
      <guid>https://www.bradcypert.com/zigs-release-modes/</guid>
      <description>&lt;p&gt;One of the first things I bumped into when I started writing Zig was its &lt;em&gt;release modes&lt;/em&gt;. At first I thought: &lt;em&gt;do I really need four different ways to compile my code?&lt;/em&gt; But as I dug in, I realized that release modes are one of Zig’s most practical features. They let you explicitly choose between &lt;strong&gt;safety, speed, and binary size&lt;/strong&gt; — depending on whether you’re prototyping, testing, or shipping.&lt;/p&gt;&#xA;&lt;p&gt;In this post, I’ll walk you through each release mode in detail, show you how they differ, and benchmark a simple Zig program across them.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Writing a B&#43; Tree in Zig</title>
      <link>https://www.bradcypert.com/writing-a-b-tree-in-zig/</link>
      <pubDate>Sun, 06 Jul 2025 00:00:00 +0000</pubDate>
      <guid>https://www.bradcypert.com/writing-a-b-tree-in-zig/</guid>
      <description>&lt;p&gt;When building an embedded database, one of the most critical decisions is choosing the right data structure for storage and retrieval. After implementing a complete B+ tree from scratch in Zig for LowkeyDB, I want to share the journey, the challenges, and the (hopefully) elegant solutions that emerged.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-is-a-b-tree-and-why-should-you-care&#34;&gt;What is a B+ Tree and Why Should You Care?&lt;/h2&gt;&#xA;&lt;p&gt;A B+ Tree is a self-balancing tree data structure that maintains sorted data and allows searches, sequential access, insertions, and deletions in logarithmic time. It&#39;s the backbone of most modern database systems, including PostgreSQL, MySQL, and SQLite.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Adding dependencies to your Zig project with zig fetch</title>
      <link>https://www.bradcypert.com/adding-dependencies-to-your-zig-project-with-zig-fetch/</link>
      <pubDate>Sun, 15 Dec 2024 00:00:00 +0000</pubDate>
      <guid>https://www.bradcypert.com/adding-dependencies-to-your-zig-project-with-zig-fetch/</guid>
      <description>&lt;p&gt;Boy, does this feel like a weird blog post to write. I had to dig into the source code for the Zig cli to figure out how to do this, so I&#39;m going to write about this and hopefully spare others from that pain.&lt;/p&gt;&#xA;&lt;p&gt;Zig is a fun language and there&#39;s something &lt;del&gt;sexy&lt;/del&gt; &lt;del&gt;powerful&lt;/del&gt; &lt;del&gt;dangerous&lt;/del&gt; enjoyable about having control of how memory is allocated. However, as with any language that I&#39;m learning in my spare time, I don&#39;t want to have to write everything from scratch. I&#39;d like to use the code written by others.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
