idc — Nixプロジェクトの柔軟なインポートツール
概要
idcは「Import Nix projects regardless of how they are exposed.」を目的とした小さなNixユーティリティです。Nilla、Sprinkles、Flakes(入力の上書き対応)、Nixpkgs(特別扱いでflakeとしては読み込まない)、そして単純なdefault.nixのような多様な公開方法に対応し、消費側のコードから一貫した方法で依存を取り込めるようにします。リポジトリにはdefault.nixやREADMEが含まれており、プロジェクトにそのdefault.nixをコピーして簡単に使い始められます。
リポジトリの統計情報
- スター数: 9
- フォーク数: 0
- ウォッチャー数: 9
- コミット数: 2
- ファイル数: 3
- メインの言語: Nix
主な特徴
- Nilla、Sprinkles、Flakes、Nixpkgs、plain default.nix を透過的にサポート
- Flakes の入力を上書きして柔軟に利用可能
- Nixpkgs はflakeとして扱わない特別処理
- プロジェクトにdefault.nixを置くだけで利用しやすい設計
技術的なポイント
idcのコアは「与えられたNixソースがどのように公開されていても、それを適切に評価して取り込む」ための検出とフォールバックロジックにあります。典型的には、まずFlakeとして解釈できるかを試し、flake.nixがあれば入力の上書き(input overriding)を可能にして柔軟な評価を行います。Flakesに対応しつつも、既存のNixpkgsレポジトリを不用意にflakeとして扱わないよう特別ケースを設けることで、意図しない挙動を避けています。さらにNillaやSprinklesといったフレームワークの慣例にも対応し、これらのラッパーやレイヤーを経由して公開されたパッケージ群を直接参照できるようにします。最終的に、最も単純なdefault.nixからのインポートもサポートしており、どの形式でも消費側が同じインターフェースで依存を取り込めることが利点です。実装はNix式(default.nix)主体で提供され、プロジェクト側にコピーして使える点からも軽量で実用的なユーティリティとして作用します。ドキュメントはREADMEに簡潔にまとまっており、小さなモジュールを別のレポジトリへ取り込む際の橋渡し役として有用です。
プロジェクトの構成
主要なファイルとディレクトリ:
- README.md: file
- default.nix: file
- npins: dir
まとめ
多様なNixプロジェクト形式を透過的に扱う、小さく実用的なインポートヘルパー。
リポジトリ情報:
- 名前: idc
- 説明: Import Nix projects regardless of how they are exposed.
- スター数: 9
- 言語: Nix
- URL: https://github.com/jakehamilton/idc
- オーナー: jakehamilton
- アバター: https://avatars.githubusercontent.com/u/7005773?v=4
READMEの抜粋:
idc
Import Nix projects regardless of how they are exposed.
idc supports all of the following frameworks/libraries:
- Nilla
- Sprinkles
- Flakes (with input overriding)
- Nixpkgs (special cased to not import as a flake)
- Plain
default.nixfiles
Install
Using idc is easy. Fetch it from this repository or even copy
./default.nix to your project as idc....