向 Zig 软件基金会认捐 30 万美元
Table Of Content
-
- 重大事件
- 观点/教程
- Zig is everything I want C to be
- Building Nintendo 3DS Homebrew with Zig
- Critical Social Infrastructure for Zig Communities | Loris Cro’s Blog
- The Zig Website Has Been Re-engineered
- Rust vs. Zig in Reality: A (Somewhat) Friendly Debate
- Why I rewrote my Rust keyboard firmware in Zig: consistency, mastery, and fun
- 视频
- 项目/工具
- Zig 语言更新
向 Zig 软件基金会认捐 30 万美元
Mitchell 在其最新的博客上宣布:我和我的妻子向 Zig 软件基金会 (ZSF) 捐赠了 300,000 美元。
两年内每年分期支付15万美元。第一期已经转账。
我从 2019 年的某个时候开始关注 Zig 项目。 我在 2021 年公开分享了我对该项目的兴奋之情。 同年晚些时候,我开始使用 Zig,到 2022 年初,我开始撰写关于 Zig 的文章,并为编译器做出贡献。 2023 年,我公开分享了用 Zig 编写的终端项目 Ghostty。
如今,我大部分的编码时间都花在了 Zig 上。 我的家人喜欢支持我们相信的事业2。 作为其中的一部分,我们希望支持那些我们认为可以带来变革和影响的独立软件项目,这既是回馈给我如此之多的社区的一种方式,更重要的是,这也是彰显和鼓励为热爱而构建的文化的一种方式。 Zig 就是这样一个项目。
Zig is everything I want C to be
对 Zig 的特色进行了简单扼要的介绍,主要有:
UB 行为检测。
- Zig 的指针不能是 null,需要用 optional 类型
- C 里面的
void*等价于 Zig 里面的?*anyopaque。void在 C 里面有两个意思,第一是『什么都没有』,第二是『类型不确定』,但void在 Zig 中只有第一个含义,因此用了anyopaque来表示类型擦除的指针(type-erased pointers)。 - 数组越界检查
- 整数溢出
Bitfield,
packed struct可以方便的用来进行协议解析,比如对于 32 位的 RISC-V 的指令,可以这么定义解析:const IType = packed struct { opcode: u7, rd: u5, funct3: u3, rs1: u5, imm: i12, // For sign-extension }; const encoded_instr: u32 = 0xFFF34293; const instr: IType = @bitCast(encoded_instr);comptime,Zig 进行元编程的基础,类型是一等成员
与 C 无缝交互,
zig cc是交叉编译的首选
项目/工具
laohanlinux/boltdb-zig
a zig implement kv database
zigler
Zig NIFs in Elixir
gdonald/blackjack-zig
Console Blackjack written in Zig
rabinnh/zig-vscode-linux
Instructions on setting up VSCode to debug Zig on Linux
lframosferreira/brainzuck
Brainf*ck interpreter written in Zig 0.12.0! Have fun!
BitlyTwiser/snek
A simple CLI parser to build CLI applications in Zig
zml/zml
High performance AI inference stack. Built for production.
BitlyTwiser/zdotenv
A port of Godotenv for Zig
sbancuz/OpenMP-zig
An implementation of the OpenMP directives for Zig
tusharsadhwani/zigimports
Automatically remove unused imports and globals from Zig files.
Mario-SO/zigitor
Video editor 🎬 written in Zig ⚡ using raylib
pwbh/ymlz
Small and convenient yaml parser for Zig