<?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 Mi&amp;Bee Blog</title><link>/tags/zig/</link><description>Recent content in Zig on Mi&amp;Bee Blog</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><managingEditor>蓝宝石的傻话</managingEditor><lastBuildDate>Fri, 26 Jun 2026 15:40:00 +0800</lastBuildDate><atom:link href="/tags/zig/rss.xml" rel="self" type="application/rss+xml"/><item><title>eBPF 开发语言之争：C、Rust 与 Zig 全链路对比</title><link>/posts/telemetry/ebpf-zig-lang-dev/</link><pubDate>Fri, 26 Jun 2026 00:00:00 +0000</pubDate><guid>/posts/telemetry/ebpf-zig-lang-dev/</guid><description>&lt;p&gt;前面几篇讲 OOM 追踪时，所有 eBPF 内核态程序都是用 C 写的。这很自然——C 是 eBPF 的&amp;quot;母语&amp;quot;，verifier、CO-RE、libbpf 整个工具链都是围绕 C 设计的。但如果你关注过 eBPF 生态，会发现一个明显的趋势：&lt;strong&gt;越来越多的人开始用 C 以外的语言写 eBPF&lt;/strong&gt;。Rust 的 Aya 框架已经被 Solana 验证器、Kubernetes Gateway API 用在生产环境；而 Zig 也在尝试用 &lt;code&gt;comptime&lt;/code&gt;、显式分配和一流的 C 互操作带来新的开发体验。&lt;/p&gt;</description></item><item><title>为什么是 Zig：从 Go/Rust 视角认识一门新系统语言</title><link>/posts/programming/zig-why-and-setup/</link><pubDate>Sun, 21 Jun 2026 09:15:00 +0800</pubDate><guid>/posts/programming/zig-why-and-setup/</guid><description>&lt;p&gt;本文基于 Zig 0.16（2026-04-13 发布，当前最新稳定版）。Zig 是一门仍在快速演进的现代系统编程语言，它的源码仓库已从 GitHub 迁移到 &lt;a href="https://codeberg.org/ziglang/zig"&gt;Codeberg&lt;/a&gt;，官方下载页在 &lt;a href="https://ziglang.org/download/"&gt;ziglang.org/download/&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="为什么是-zig"&gt;为什么是 Zig？&lt;/h2&gt;
&lt;p&gt;如果你已经熟悉 Go 和 Rust，可能会问：为什么还要看第三门系统语言？答案很简单：&lt;strong&gt;Zig 填补了 Go 和 Rust 之间的空白&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>基础语法:用 Go/Rust 经验快速上手 Zig</title><link>/posts/programming/zig-basic-syntax/</link><pubDate>Mon, 22 Jun 2026 14:30:00 +0800</pubDate><guid>/posts/programming/zig-basic-syntax/</guid><description>&lt;p&gt;本文基于 Zig 0.16。&lt;/p&gt;
&lt;p&gt;上一篇我们聊了为什么 Zig 值得学,以及怎么跑通你的第一个 Hello World。这一篇直接上手语法——变量、类型、控制流、函数、泛型。核心目标只有一个:&lt;strong&gt;让你能读懂和写出 Zig 代码&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>错误处理:Go、Rust 之外的第三条路</title><link>/posts/programming/zig-error-handling/</link><pubDate>Tue, 23 Jun 2026 10:45:00 +0800</pubDate><guid>/posts/programming/zig-error-handling/</guid><description>&lt;p&gt;本文基于 Zig 0.16。&lt;/p&gt;
&lt;h2 id="三种错误处理范式"&gt;三种错误处理范式&lt;/h2&gt;
&lt;p&gt;错误处理是编程语言设计中最具争议的话题之一。Go 的多返回值、Rust 的 &lt;code&gt;Result&amp;lt;T, E&amp;gt;&lt;/code&gt; 枚举、Zig 的错误联合类型——它们代表了三种截然不同的哲学。本文假设你已有 Go 或 Rust 经验，将以此为参照系来理解 Zig 的设计。&lt;/p&gt;</description></item><item><title>Zig 内存管理:显式分配器模式</title><link>/posts/programming/zig-memory-allocators/</link><pubDate>Wed, 24 Jun 2026 16:20:00 +0800</pubDate><guid>/posts/programming/zig-memory-allocators/</guid><description>&lt;p&gt;本文基于 Zig 0.16。&lt;/p&gt;
&lt;p&gt;前几篇我们走过了 Zig 的基础语法和错误处理。现在进入 Zig 最与众不同的部分——&lt;strong&gt;内存管理&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;如果你有 Go 或 Rust 背景，Zig 的内存哲学会让你感到陌生：它既不提供垃圾回收，也不引入所有权系统，而是选择了一条完全不同的路——&lt;strong&gt;分配器模式&lt;/strong&gt;（Allocator Pattern）。这个模式的核心约定极其简单，但影响深远：&lt;/p&gt;</description></item><item><title>结构体与 comptime：编译期计算的威力</title><link>/posts/programming/zig-comptime-structs/</link><pubDate>Thu, 25 Jun 2026 11:00:00 +0800</pubDate><guid>/posts/programming/zig-comptime-structs/</guid><description>&lt;p&gt;本文基于 Zig 0.16。&lt;/p&gt;
&lt;p&gt;前几篇我们完成了基础语法、错误处理和内存分配器，现在终于可以触及 Zig 最迷人、也最具革命性的特性——&lt;strong&gt;编译期计算&lt;/strong&gt;（comptime）。但在此之前，我们先花几分钟快速了解 Zig 的结构体与方法，它们是你理解 comptime 的基石。&lt;/p&gt;</description></item><item><title>Zig 标准库、I/O 接口与并发：把知识串起来</title><link>/posts/programming/zig-stdlib-io-concurrency/</link><pubDate>Fri, 26 Jun 2026 15:40:00 +0800</pubDate><guid>/posts/programming/zig-stdlib-io-concurrency/</guid><description>&lt;p&gt;本文基于 Zig 0.16。&lt;/p&gt;
&lt;p&gt;经过前五篇的旅程——语法、错误处理、内存管理、编译期计算、构建系统——现在到了收官篇，该把知识串起来了。&lt;/p&gt;
&lt;p&gt;0.16 是两个重要版本的交汇点：标准库容器完成了 &lt;strong&gt;Unmanaged 迁移&lt;/strong&gt;，同时引入了革命性的 &lt;strong&gt;std.Io 接口&lt;/strong&gt;。这两个变化深刻影响了 Zig 代码的写法。本篇将围绕它们展开，最后用三语言实战对比收束，并给出学习路线和资源。&lt;/p&gt;</description></item></channel></rss>