January 31, 2023
一个小版本,主要是 bugfix。最主要的功能是:Package Manager MVP,Zig 终于开始支持包管理了! 不过才刚刚开始,有一个面板来跟踪相关 issue 进度。使用的配置文件是 build.zig.ini
,格式如下:
[package]
name=libffmpeg
version=5.1.2
[dependency]
name=libz
url=https://github.com/andrewrk/libz/archive/f0e53cc2391741034b144a2c2076ed8a9937b29b.tar.gz
hash=c9b30cffc40999d2c078ff350cbcee642970a224fe123c756d0892f876cf1aae
[dependency]
name=libmp3lame
url=https://github.com/andrewrk/libmp3lame/archive/497568e670bfeb14ab6ef47fb6459a2251358e43.tar.gz
hash=9ba4f49895b174a3f918d489238acbc146bd393575062b2e3be33488b688e36f
build.zig
引用方式:
const std = @import("std");
pub fn build(b: *std.build.Builder) void {
const target = b.standardTargetOptions(.{});
const mode = b.standardReleaseOptions();
const libz_dep = b.dependency("libz", .{});
const libmp3lame_dep = b.dependency("libmp3lame", .{});
const lib = b.addStaticLibrary("ffmpeg", null);
lib.setTarget(target);
lib.setBuildMode(mode);
lib.linkLibrary(libz_dep.artifact("z"));
lib.linkLibrary(libmp3lame_dep.artifact("mp3lame"));
lib.linkLibC();
lib.addIncludePath(".");
lib.install();
}
其他关注点:
Code study: interface idioms/patterns in zig standard libraries
由于 Zig 目前还不支持接口抽空,本文介绍了标准库中来实现类似功能的五种方式
A Zig Diary
作者分享了对 Zig 的使用体验
Why Accounting Needs Its Own Database with Joran Greef of Tiger Beetle
播客分享
Crossplatform JNI builds with Zig
又一个使用 Zig 作为交叉编译的例子
Introducing ⚡zap⚡ - blazingly fast backends in zig
Zap 是 Zig 对 facil.io - The C Web Application Framework 的封装,本文算是对它的宣传。
Indexing every Zig for great justice
本文介绍了另一种语言服务器协议(LSP):SCIP,并用 zig 实现。项目处于早期阶段。
dantecatalfamo/zig-git
Implementing git structures and functions in zig
axiomhq/zig-hyperloglog
Zig library for HyperLogLog estimation
This Week In Zig
一个介绍 Zig 的周刊,主要是 master 分支上的改动