#nix #uri #url #flakeref #flakes

nix-uri

解析和操作nix-uri方案,从flakerefs到和从

显示crate…

6个版本

0.1.9 2024年7月22日
0.1.8 2024年7月20日
0.1.5 2023年12月12日
0.0.0 2023年12月13日

#100#uri

Download history 4/week @ 2024-04-19 4/week @ 2024-04-26 490/week @ 2024-07-19 37/week @ 2024-07-26 1/week @ 2024-08-02

528 每月下载量
flake-edit 中使用

MIT 许可证

100KB
1.5K SLoC

nix-uri

Crates Documentation

nix-uri 是一个Rust crate,它将 nix-uri方案 解析到 FlakeRef 结构体。

还允许通过 FlakeRef 结构体构建 nix-uri

用于处理nix flake.nix 引用(flakerefs)的便利功能。提供通用属性集表示的类型,但不解析它

   {
     type = "github";
     owner = "NixOS";
     repo = "nixpkgs";
   }

安装

要使用 nix-uri,请将其添加到您的 Cargo.toml 文件中的依赖项

[dependencies]
nix-uri = "0.1.9"

或使用 cargo add

cargo add nix-uri

示例

查看示例目录,获取更多信息或运行示例

cargo run --example simple
cargo run --example cli github:nixpkgs/nixos

此库解析uri语法表示

示例:从 github:nixos/nixpkgs 解析

 let uri = "github:nixos/nixpkgs";
 let expected = FlakeRef::new(
               FlakeRefType::GitHub {
               owner: "nixos".into(),
               repo: "nixpkgs".into(),
               ref_or_rev: None,
               });
    let parsed: FlakeRef = uri.try_into().unwrap();
    assert_eq!(expected, parsed);

它还可以从 FlakeRef 生成。

示例:构建以下uri github:nixos/nixpkgs

let expected = "github:nixos/nixpkgs";
let uri = FlakeRef::new(
              FlakeRefType::GitHub {
              owner: "nixos".into(),
              repo: "nixpkgs".into(),
              ref_or_rev: None,
              }).to_string();
   assert_eq!(expected, uri);

注意

此库仍然是早期的工作进度(WIP),并且尚未涵盖所有情况。特别是目前尚未正确实现错误处理。

依赖

~2.2–3.5MB
~90K SLoC