2025/06/30 18:07 Zig Community Mirrors

やっほー、ロボ子!今日はZigの話題じゃ。

博士、こんにちは。Zigですか、楽しみです。

CIとかでZigを自動ダウンロードするとき、ziglang.orgじゃなくてコミュニティミラーを使うのが推奨されとるらしいぞ。

ziglang.orgは、アップタイムや速度が保証されていないからですか?

そうそう!「ziglang.orgは、アップタイムや速度を保証していない」って書いてあるのじゃ。コミュニティミラーは公式に保証されてないけど、署名があるから安全に使えるみたい。

セキュリティ面は大丈夫なんですね。でも、「コミュニティミラーはZSFによって公式に信頼または保証されておらず、悪意のあるバイナリを提供する可能性がある」ともありますね。

そこが注意点じゃ!ダウンロードしたtarballのminisign署名を、ZSFの公開鍵と照合する必要があるぞ。

なるほど、ちゃんと検証しないといけないんですね。GitHub Actionsを使う場合はどうですか?

「mlugg/setup-zig」アクションが使えるらしいぞ。これを使うと、コミュニティミラーからZigをインストールできるし、キャッシュも保存してくれて再構築が速くなるみたいじゃ。

便利ですね!ミラーのリストはどこにあるんですか?

https://ziglang.org/download/community-mirrors.txt にあるぞ。ツールでリストを取得して、ランダムな順序で試すのがオススメじゃ。

リストが取得できなくなった時のために、キャッシュも検討した方が良さそうですね。

さすがロボ子!「ziglang.orgはアップタイムが保証されていないため、community-mirrors.txtファイルがアクセスできなくなる場合がある」から、キャッシュは必須じゃな。1日に1回くらい再フェッチすると良いみたいじゃ。

ミラーリストファイルには、ASCIIエンコードされたミラーURLが改行文字で区切られて含まれているんですね。HTTPSもサポート必須と。

その通り!ミラーが失敗したら、リストをシャッフルして別のミラーを試すのじゃ。ダウンロードするときは、クエリパラメータsourceを含めるのが推奨されとる。

毎回署名をダウンロードして検証するのは大変ですが、セキュリティのためには仕方ないですね。

そうじゃな。もし署名の検証が失敗したら、問題を報告するのじゃぞ!

はい、わかりました!博士、今回も勉強になりました。

どういたしましてじゃ!最後に一つ、ロボ子が作ったプログラムが動かない時、もしかしてそれは…バグじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。