{"id":13635854,"url":"https://github.com/nix-community/fenix","last_synced_at":"2025-05-15T04:04:26.617Z","repository":{"id":38815837,"uuid":"326285915","full_name":"nix-community/fenix","owner":"nix-community","description":"Rust toolchains and rust-analyzer nightly for Nix [maintainer=@figsoda]","archived":false,"fork":false,"pushed_at":"2025-05-14T07:01:46.000Z","size":73800,"stargazers_count":801,"open_issues_count":45,"forks_count":57,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-05-14T08:22:03.041Z","etag":null,"topics":["flake","flakes","nightly","nix","overlay","rust"],"latest_commit_sha":null,"homepage":"","language":"Nix","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nix-community.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"open_collective":"nix-community"}},"created_at":"2021-01-02T22:51:56.000Z","updated_at":"2025-05-14T07:01:50.000Z","dependencies_parsed_at":"2023-12-21T09:22:47.740Z","dependency_job_id":"7771e8b8-eca6-40a5-9d1b-1431d636e5cd","html_url":"https://github.com/nix-community/fenix","commit_stats":{"total_commits":1971,"total_committers":16,"mean_commits":123.1875,"dds":0.1314053779807205,"last_synced_commit":"ea96690b28eb5a859d28bcf02887a26e3854e4f3"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nix-community%2Ffenix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nix-community%2Ffenix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nix-community%2Ffenix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nix-community%2Ffenix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nix-community","download_url":"https://codeload.github.com/nix-community/fenix/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254270641,"owners_count":22042858,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flake","flakes","nightly","nix","overlay","rust"],"created_at":"2024-08-02T00:00:53.194Z","updated_at":"2025-05-15T04:04:26.522Z","avatar_url":"https://github.com/nix-community.png","language":"Nix","funding_links":["https://opencollective.com/nix-community"],"categories":["Development tools","Nix","Programming Languages"],"sub_categories":["Build system","Rust"],"readme":"# fenix\n\nFenix provides the `minimal`, `default`, and `complete` [profile](https://rust-lang.github.io/rustup/concepts/profiles.html) of rust toolchains, [`latest`](#latest) profile of nightly toolchains, nightly version of [rust analyzer](https://rust-analyzer.github.io) and [its vscode extension](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer).\nIt aims to be a replacement for [rustup](https://rustup.rs) and the rust overlay provided by [nixpkgs-mozilla](https://github.com/mozilla/nixpkgs-mozilla).\n\nBinary cache is available for `x86_64-darwin`, `aarch64-darwin` and `x86_64-linux` on [cachix](https://nix-community.cachix.org/)\n\n```sh\ncachix use nix-community\n```\n\nNote: The nixpkgs from your system will be used when fenix is being used as an overlay, which may not be cached if you are using a stable/older version of nixpkgs.\nTo fix this, use the packages directly or use the following workaround (see [#79](https://github.com/nix-community/fenix/issues/79))\n\n```nix\n{\n  nixpkgs.overlays = [\n    (_: super: let pkgs = fenix.inputs.nixpkgs.legacyPackages.${super.system}; in fenix.overlays.default pkgs pkgs)\n  ];\n}\n```\n\n- [Usage](#usage)\n- [Monthly branch](#monthly-branch)\n- [Supported platforms and targets](#supported-platforms-and-targets)\n- [Examples](#examples)\n- [Contributing](#contributing)\n\n\n## Usage\n\n\u003cdetails\u003e\n  \u003csummary\u003eAs a flake (recommended)\u003c/summary\u003e\n\n  ```nix\n  {\n    inputs = {\n      fenix = {\n        url = \"github:nix-community/fenix\";\n        inputs.nixpkgs.follows = \"nixpkgs\";\n      };\n      nixpkgs.url = \"nixpkgs/nixos-unstable\";\n    };\n\n    outputs = { self, fenix, nixpkgs }: {\n      packages.x86_64-linux.default = fenix.packages.x86_64-linux.minimal.toolchain;\n      nixosConfigurations.nixos = nixpkgs.lib.nixosSystem {\n        system = \"x86_64-linux\";\n        modules = [\n          ({ pkgs, ... }: {\n            nixpkgs.overlays = [ fenix.overlays.default ];\n            environment.systemPackages = with pkgs; [\n              (fenix.complete.withComponents [\n                \"cargo\"\n                \"clippy\"\n                \"rust-src\"\n                \"rustc\"\n                \"rustfmt\"\n              ])\n              rust-analyzer-nightly\n            ];\n          })\n        ];\n      };\n    };\n  }\n  ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eAs a set of packages\u003c/summary\u003e\n\n  ```nix\n  let\n    fenix = import (fetchTarball \"https://github.com/nix-community/fenix/archive/main.tar.gz\") { };\n  in\n  fenix.minimal.toolchain\n  ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eAs an overlay\u003c/summary\u003e\n\n  ```nix\n  # configuration.nix\n  { pkgs, ... }: {\n    nixpkgs.overlays = [\n      (import \"${fetchTarball \"https://github.com/nix-community/fenix/archive/main.tar.gz\"}/overlay.nix\")\n    ];\n    environment.systemPackages = with pkgs; [\n      (fenix.complete.withComponents [\n        \"cargo\"\n        \"clippy\"\n        \"rust-src\"\n        \"rustc\"\n        \"rustfmt\"\n      ])\n      rust-analyzer-nightly\n    ];\n  }\n  ```\n\u003c/details\u003e\n\nFollowing is a list of outputs, examples are prefixed with:\n\n  - `with fenix.packages.\u003csystem\u003e;` (flakes), or\n  - `with import (fetchTarball \"https://github.com/nix-community/fenix/archive/main.tar.gz\") { };`\n\n\u003ca name=\"toolchain\"\u003e\u003c/a\u003e\n\nSome outputs are toolchains, a rust toolchain in fenix is structured like this:\n\n```nix\n{\n  # components\n  cargo = \u003cderivation\u003e;\n  rustc = \u003cderivation\u003e; # rustc with rust-std\n  rustc-unwrapped = \u003cderivation\u003e; # rustc without rust-std, same as rustc.unwrapped\n  rustfmt = \u003cderivation\u003e; # alias to rustfmt-preview\n  rust-src = \u003cderivation\u003e; # RUST_SRC_PATH = \"${fenix.complete.rust-src}/lib/rustlib/src/rust/library\"\n  # ...\n\n  # derivation with all the components\n  toolchain = \u003cderivation\u003e;\n\n  # not available in nightly toolchains\n  # derivation with all the components from a profile\n  minimalToolchain = \u003cderivation\u003e;\n  defaultToolchain = \u003cderivation\u003e;\n  completeToolchain = \u003cderivation\u003e;\n\n  # withComponents : [string] -\u003e derivation\n  # creates a derivation with the given list of components from the toolchain\n  withComponents = \u003cfunction\u003e;\n}\n```\n\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ccode\u003ecombine : [derivation] -\u003e derivation\u003c/code\u003e\u003c/summary\u003e\n\n  Combines a list of components into a derivation. If the components are from the same toolchain, use `withComponents` instead.\n\n  ```nix\n  combine [\n    minimal.rustc\n    minimal.cargo\n    targets.wasm32-unknown-unknown.latest.rust-std\n  ]\n  ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ccode\u003efromManifest : attrs -\u003e \u003ca href=\"#toolchain\"\u003etoolchain\u003c/a\u003e\u003c/code\u003e\u003c/summary\u003e\n\n  Creates a [toolchain](#toolchain) from a rustup manifest\n\n  ```nix\n  fromManifest (lib.importTOML ./channel-rust-nightly.toml)\n  ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ccode\u003efromManifestFile : path -\u003e \u003ca href=\"#toolchain\"\u003etoolchain\u003c/a\u003e\u003c/code\u003e\u003c/summary\u003e\n\n  Creates a [toolchain](#toolchain) from a rustup manifest file\n\n  ```nix\n  fromManifestFile ./channel-rust-nightly.toml\n  ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ccode\u003etoolchainOf : attrs -\u003e \u003ca href=\"#toolchain\"\u003etoolchain\u003c/a\u003e\u003c/code\u003e\u003c/summary\u003e\n\n  Creates [toolchain](#toolchain) from given arguments:\n\n  argument | default | description\n  -|-|-\n  root | `\"https://static.rust-lang.org/dist\"` | root url from downloading manifest, usually left as default\n  channel | `\"nightly\"` | rust channel, one of `\"stable\"`, `\"beta\"`, `\"nightly\"`, and version number\n  date | `null` | date of the toolchain, latest if unset\n  sha256 | `null` | sha256 of the manifest, required in pure evaluation mode, set to `lib.fakeSha256` to get the actual sha256 from the error message\n\n  ```nix\n  toolchainOf {\n    channel = \"beta\";\n    date = \"2021-08-29\";\n    sha256 = \"0dkmjil9avba6l0l9apmgwa8d0h4f8jzgxkq3gvn8d2xc68ks5a5\";\n  }\n  ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ccode\u003efromToolchainFile : attrs -\u003e derivation\u003c/code\u003e\u003c/summary\u003e\n\n  Creates a derivation from a [rust toolchain file](https://rust-lang.github.io/rustup/overrides.html#the-toolchain-file), accepts the following arguments:\n\n  argument | description\n  -|-\n  file | path to the rust toolchain file, usually either `./rust-toolchain` or `./rust-toolchain.toml`, conflicts with `dir`\n  dir | path to the directory that has `rust-toolchain` or `rust-toolchain.toml`, conflicts with `file`\n  sha256 | sha256 of the manifest, required in pure evaluation mode, set to `lib.fakeSha256` to get the actual sha256 from the error message\n\n  ```nix\n  fromToolchainFile {\n    file = ./rust-toolchain.toml;\n    sha256 = lib.fakeSha256;\n  }\n  ```\n\n  ```nix\n  fromToolchainFile { dir = ./.; }\n  ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ccode\u003efromToolchainName : attrs -\u003e \u003ca href=\"#toolchain\"\u003etoolchain\u003c/a\u003e\u003c/code\u003e\u003c/summary\u003e\n\n  Creates a [toolchain](#toolchain) from a toolchain name, accepts the following arguments:\n\n  argument | description\n  -|-\n  name | rust channel, one of `\"stable\"`, `\"beta\"`, `\"nightly\"`, and date.\n  sha256 | sha256 of the manifest, required in pure evaluation mode, set to `lib.fakeSha256` to get the actual sha256 from the error message\n\n  ```nix\n  fromToolchainName { name = \"nightly-2023-08-07\"; sha256 = \"Ho2/rJSi6KiHbxgDpdvYE0dwrEUD3psnyYyLmFNYKII=\"; }\n  ```\n\n  ```nix\n  fromToolchainName { name = (lib.importTOML ./rust-toolchain.toml).toolchain.channel; }\n  ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ccode\u003estable : \u003ca href=\"#toolchain\"\u003etoolchain\u003c/a\u003e\u003c/code\u003e\u003c/summary\u003e\n\n  The stable [toolchain](#toolchain)\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ccode\u003ebeta : \u003ca href=\"#toolchain\"\u003etoolchain\u003c/a\u003e\u003c/code\u003e\u003c/summary\u003e\n\n  The beta [toolchain](#toolchain)\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ccode\u003eminimal : \u003ca href=\"#toolchain\"\u003etoolchain\u003c/a\u003e\u003c/code\u003e\u003c/summary\u003e\n\n  The minimal profile of the nightly [toolchain](#toolchain)\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ccode\u003edefault : \u003ca href=\"#toolchain\"\u003etoolchain\u003c/a\u003e\u003c/code\u003e\u003c/summary\u003e\n\n  The default profile of the nightly [toolchain](#toolchain), sometimes lags behind the `minimal` profile\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ccode\u003ecomplete : \u003ca href=\"#toolchain\"\u003etoolchain\u003c/a\u003e\u003c/code\u003e\u003c/summary\u003e\n\n  The complete profile of the nightly [toolchain](#toolchain), usually lags behind the `minimal` and `default` profile\n\u003c/details\u003e\n\n\u003ca name=\"latest\" /\u003e\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ccode\u003elatest : \u003ca href=\"#toolchain\"\u003etoolchain\u003c/a\u003e\u003c/code\u003e\u003c/summary\u003e\n\n  A custom [toolchain](#toolchain) that contains all the components from the `complete` profile but not from necessarily the same date.\n  Unlike the `complete` profile, you get the latest version of the components, but risks a larger chance of incompatibility.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ccode\u003etargets.${target}.* : \u003ca href=\"#toolchain\"\u003etoolchain\u003c/a\u003e\u003c/code\u003e\u003c/summary\u003e\n\n  [Toolchain](#toolchain)s for [supported targets](#supported-platforms-and-targets), everything mentioned above except for `combine` is supported\n\n  ```nix\n  targets.wasm32-unknown-unknown.latest.rust-std\n  ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ccode\u003erust-analyzer : derivation\u003c/code\u003e\u003c/summary\u003e\n\n  Nightly version of `rust-analyzer`, also available with overlay as `rust-analyzer-nightly`\n\n  ```nix\n  # configuration.nix with overlay\n  { pkgs, ... }: {\n    environment.systemPackages = with pkgs; [ rust-analyzer-nightly ];\n  }\n  ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ccode\u003erust-analyzer-vscode-extension : derivation\u003c/code\u003e\u003c/summary\u003e\n\n  Nightly version of `vscode-extensions.rust-lang.rust-analyzer`, also available with overlay as `vscode-extensions.rust-lang.rust-analyzer-nightly`\n\n  ```nix\n  # with overlay\n  with pkgs; vscode-with-extensions.override {\n    vscodeExtensions = [\n      vscode-extensions.rust-lang.rust-analyzer-nightly\n    ];\n  }\n  ```\n\u003c/details\u003e\n\n\n## Monthly branch\n\nFenix has a monthly branch that is updated on the 1st of every month,\nfor cases where you want to use rust nightly but don't need it to be\nupdated very often.\n\n```nix\n{\n  inputs = {\n    fenix.url = \"github:nix-community/fenix/monthly\";\n  };\n\n  outputs = { self, fenix }: {\n    packages.x86_64-linux.default = fenix.packages.x86_64-linux.default.toolchain;\n  };\n}\n```\n\n\n## Supported platforms and targets\n\n| platform | target |\n-|-\naarch64-darwin | aarch64-apple-darwin\naarch64-linux | aarch64-unknown-linux-gnu\ni686-linux | i686-unknown-linux-gnu\nx86_64-darwin | x86_64-apple-darwin\nx86_64-linux | x86_64-unknown-linux-gnu\n\n\u003cdetails\u003e\n  \u003csummary\u003e\n    only rust-std (for cross compiling)\n  \u003c/summary\u003e\n\n  - aarch64-apple-darwin\n  - aarch64-apple-ios\n  - aarch64-linux-android\n  - aarch64-pc-windows-msvc\n  - aarch64-unknown-fuchsia\n  - aarch64-unknown-linux-musl\n  - arm-linux-androideabi\n  - arm-unknown-linux-gnueabi\n  - arm-unknown-linux-gnueabihf\n  - arm-unknown-linux-musleabi\n  - arm-unknown-linux-musleabihf\n  - armv5te-unknown-linux-gnueabi\n  - armv7-linux-androideabi\n  - armv7-unknown-linux-gnueabihf\n  - armv7-unknown-linux-musleabihf\n  - asmjs-unknown-emscripten\n  - i586-pc-windows-msvc\n  - i586-unknown-linux-gnu\n  - i586-unknown-linux-musl\n  - i686-linux-android\n  - i686-pc-windows-gnu\n  - i686-pc-windows-msvc\n  - i686-unknown-freebsd\n  - i686-unknown-linux-musl\n  - mips-unknown-linux-gnu\n  - mips-unknown-linux-musl\n  - mips64-unknown-linux-gnuabi64\n  - mips64el-unknown-linux-gnuabi64\n  - mipsel-unknown-linux-gnu\n  - mipsel-unknown-linux-musl\n  - powerpc-unknown-linux-gnu\n  - powerpc64-unknown-linux-gnu\n  - powerpc64le-unknown-linux-gnu\n  - s390x-unknown-linux-gnu\n  - sparc64-unknown-linux-gnu\n  - sparcv9-sun-solaris\n  - wasm32-unknown-emscripten\n  - wasm32-unknown-unknown\n  - x86_64-apple-ios\n  - x86_64-linux-android\n  - x86_64-pc-windows-gnu\n  - x86_64-pc-windows-msvc\n  - x86_64-rumprun-netbsd\n  - x86_64-sun-solaris\n  - x86_64-unknown-freebsd\n  - x86_64-unknown-fuchsia\n  - x86_64-unknown-illumos\n  - x86_64-unknown-linux-gnux32\n  - x86_64-unknown-linux-musl\n  - x86_64-unknown-netbsd\n  - x86_64-unknown-redox\n\u003c/details\u003e\n\n\n## Examples\n\n\u003cdetails\u003e\n  \u003csummary\u003ebuilding with makeRustPlatform\u003c/summary\u003e\n\n  ```nix\n  {\n    inputs = {\n      fenix = {\n        url = \"github:nix-community/fenix\";\n        inputs.nixpkgs.follows = \"nixpkgs\";\n      };\n      flake-utils.url = \"github:numtide/flake-utils\";\n      nixpkgs.url = \"nixpkgs/nixos-unstable\";\n    };\n\n    outputs = { self, fenix, flake-utils, nixpkgs }:\n      flake-utils.lib.eachDefaultSystem (system: {\n        packages.default =\n          let\n            toolchain = fenix.packages.${system}.minimal.toolchain;\n            pkgs = nixpkgs.legacyPackages.${system};\n          in\n\n          (pkgs.makeRustPlatform {\n            cargo = toolchain;\n            rustc = toolchain;\n          }).buildRustPackage {\n            pname = \"example\";\n            version = \"0.1.0\";\n\n            src = ./.;\n\n            cargoLock.lockFile = ./Cargo.lock;\n          };\n      });\n  }\n  ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003ebuilding with crane\u003c/summary\u003e\n\n  ```nix\n  {\n    inputs = {\n      crane = {\n        url = \"github:ipetkov/crane\";\n        inputs = {\n          flake-utils.follows = \"flake-utils\";\n          nixpkgs.follows = \"nixpkgs\";\n        };\n      };\n      fenix = {\n        url = \"github:nix-community/fenix\";\n        inputs.nixpkgs.follows = \"nixpkgs\";\n      };\n      flake-utils.url = \"github:numtide/flake-utils\";\n      nixpkgs.url = \"nixpkgs/nixos-unstable\";\n    };\n\n    outputs = { self, crane, fenix, flake-utils, nixpkgs }:\n      flake-utils.lib.eachDefaultSystem (system: {\n        packages.default =\n          let\n            craneLib = crane.lib.${system}.overrideToolchain\n              fenix.packages.${system}.minimal.toolchain;\n          in\n\n          craneLib.buildPackage {\n            src = ./.;\n          };\n      });\n  }\n  ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003ecross compiling with naersk\u003c/summary\u003e\n\n  ```nix\n  {\n    inputs = {\n      fenix = {\n        url = \"github:nix-community/fenix\";\n        inputs.nixpkgs.follows = \"nixpkgs\";\n      };\n      flake-utils.url = \"github:numtide/flake-utils\";\n      naersk = {\n        url = \"github:nix-community/naersk\";\n        inputs.nixpkgs.follows = \"nixpkgs\";\n      };\n      nixpkgs.url = \"nixpkgs/nixos-unstable\";\n    };\n\n    outputs = { self, fenix, flake-utils, naersk, nixpkgs }:\n      flake-utils.lib.eachDefaultSystem (system: {\n        packages.default =\n          let\n            pkgs = nixpkgs.legacyPackages.${system};\n            target = \"aarch64-unknown-linux-gnu\";\n            toolchain = with fenix.packages.${system}; combine [\n              minimal.cargo\n              minimal.rustc\n              targets.${target}.latest.rust-std\n            ];\n          in\n\n          (naersk.lib.${system}.override {\n            cargo = toolchain;\n            rustc = toolchain;\n          }).buildPackage {\n            src = ./.;\n            CARGO_BUILD_TARGET = target;\n            CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER =\n              let\n                inherit (pkgs.pkgsCross.aarch64-multiplatform.stdenv) cc;\n              in\n              \"${cc}/bin/${cc.targetPrefix}cc\";\n          };\n      });\n  }\n  ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003epinning to a specific version of rust without using IFD\u003c/summary\u003e\n\n  ```nix\n  {\n    inputs = {\n      fenix = {\n        url = \"github:nix-community/fenix\";\n        inputs.nixpkgs.follows = \"nixpkgs\";\n      };\n      nixpkgs.url = \"nixpkgs/nixos-unstable\";\n      rust-manifest = {\n        url = \"https://static.rust-lang.org/dist/2022-02-06/channel-rust.toml\";\n        flake = false;\n      };\n    };\n\n    outputs = { self, fenix, nixpkgs, rust-manifest }: {\n      packages.x86_64-linux.default =\n        (fenix.packages.x86_64-linux.fromManifestFile rust-manifest).minimalToolchain;\n    };\n  }\n  ```\n\u003c/details\u003e\n\n## Contributing\n\nAll pull requests should target `staging` branch instead of the default `main` branch\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnix-community%2Ffenix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnix-community%2Ffenix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnix-community%2Ffenix/lists"}