「Nix flake を一つに統合する」— 12,000 の flake を 1 つの入力で
One Nix flake to rule them all

Nix ユーザーなら誰もが経験する、flake を追加するたびに `url` と `follows` を書く煩わしさ。著者はその UX に異を唱え、12,000 近くの flake を 1 つの入力で提供する「omniflake」を開発しました。Nix の遅延評価と flake lock の仕組みを活用し、必要な flake だけを遅延フェッチすることで、パフォーマンスを維持しています。また、flake lock 生成時の二次時間計算量の問題を発見し、Nix 本体に修正を提案しました。
flake が 1 つですべての flake を運び、必要なものを取り出せたらどうだろう?
HNでの議論
14- jchw
これが良いアイデアかどうかは確信がないけど、まあ、全部をちゃんと遅延評価できるようにしたのに、それができなきゃ意味ないよね。個人的には、大きなシステム設定で20〜30個のflake入力を普通に使ってるけど、これまで全然気にしたことないな。唯一の本当の懸念は、重複を避けるためにNixpkgsをオーバーライドすると、依存関係が最新のNixpkgsに対応してないせいでたまに壊れることだけど、今のところnix-vimでしか遭遇してない。nix-vimはそもそも何らかの形でNixpkgsに入っててもおかしくないと思うけど(もうしばらく使ってないから現状は知らないけど)。
仕方なく検索してみたら、自分のflakeの少なくとも一つが入ってた。nix-binary-ninja、これはプロプライエタリなBinary Ninja逆アセンブラ/デコンパイラ用のNix flakeだ。へえ、いいね。(ちなみに、これを使ってるけど、実際におすすめするかは微妙。binjaがシステムライブラリを使うようにして統合を良くするために変なことをしてて、それが今は一部の拡張機能を壊してる。まあ、仕方ないけど…)
- AyanamiKaine
わあ、すごくかっこいい!
絶対試してみる!もし何か一つだけ自分を悩ませるものがあるとすれば、例えばSDL3とそのGPU APIを使って何か開発してるときに、いつもあの共有ライブラリを追いかけることだな。
- digdugdirk
これは素晴らしいし、NixOSを使うときの楽しくもありひどくもある体験をよく表してる。
それに、この著者は最近絶好調だね!面白い記事がたくさんあって、どうやってCNNで定期的に政治番組を司会しながら技術記事を書くバランスを取ってるのか、まったく想像もつかないよ。