rust-overlay
naersk
rust-overlay | naersk | |
---|---|---|
11 | 6 | |
751 | 637 | |
- | 1.6% | |
9.5 | 5.6 | |
8 days ago | 13 days ago | |
Nix | Nix | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
rust-overlay
-
Understanding Overlays and direnv nix shell inheritance
I'm trying to understand overlays in order to make a proper rustup install (I've read that this overlay is the best way to go).
-
Diving straight into flakes with no channels?
real-world example: https://github.com/oxalica/rust-overlay/blob/master/flake.nix
-
An example providing rust toolchain for Linux/macOS using devenv.sh
In this language context specifically, if one wanted to manage their workspace with Nix I would reach for Riff and/or oxalica/rust-overlay first, since they are deliberately more aware of Rust-specific nuance. In the latter's case it has compatibility paths with rustup-toolchain files as well, for allowing your peers who can't or won't adopt Nix to continue to feel like first-class participants in the project. Another alternative I don't have experience with would be nix-community/fenix.
-
Introducing Riff, a Nix-based tool for automatically providing external dependencies to Rust projects
p.s. I'm not sure if it's mentioned much of anywhere, but it'd be neat if there was a way to figure out the appropriate cargo from a rust-toolchain/rust-toolchain.toml if present, ala https://github.com/oxalica/rust-overlay. Funnily enough 95% of my development time is in Rust, but I don't actually have it installed globally, fun times being a NixOS user. I'd definitely make the argument that cargo is an external dependency!
-
Have a few questions about NixOS
Many of us have moved to https://github.com/oxalica/rust-overlay over Mozilla's overlay.
-
Rust Environment and Docker Build with Nix Flakes
We added rust-overlay, so we can easily specify different rust versions without relying on nixpkgs to give us what ever rust version in there.
-
Switching from pyenv, rbenv, goenv and nvm to asdf – yujinyuz
If it's Rust, you can use https://github.com/oxalica/rust-overlay to get any version you want very easily without pinning an instance of nixpkgs just for it.
asdf does not allow you to keep three different versions of the same language, so I'm not sure how that compares? It's not super-trivial to do in Nix, but at least you can do it.
asdf is also no different than Nix when it comes to minor/major versions. You're at the mercy of what the plugin does, other than that you have to create your own plugin from scratch or make a fork. Nix has the option to patch things up more easily at least.
-
Fenix: rust toolchains for all channels and rust-analyzer nightly
How does this compare to https://github.com/oxalica/rust-overlay/ ? Can fenix ingest a rust-toolchain file and provide packages from it?
Can you say a bit about how this compares to oxalica’s rust overlay?
-
What made you grok Nix language?
I frequently try to do something, say use (from the README of rust overlay):
naersk
-
Help with building a 32bit library with cargo
i would also recommend using crane or naersk since iirc rustPlaform.buildRustPackage can mangle some of these options (or maybe i just did something wrong lol)
-
Nix & Rust - cargo2nix 0.11.0 released
Have a look at naersk, it neither requires generated Nix files nor IFD.
-
Nix and NixOS Get So Close to Perfect
We use naersk[0] for Rust projects in our Nix monorepo (for example [1]). It's pretty hands-off in terms of the Nix code needed (you don't need to pin hashes inside of the Nix code as long as you have a Cargo lockfile) and all the existing tooling keeps working fine.
The main drawback of it is that it currently builds all of your dependencies in one big derivation, so any dependency changes cause a full rebuild. There's some other project I saw fly by which attempts to do a similar thing but split each crate into a separate derivation, but I forgot what it's called and have no experience with it.
[0]: https://github.com/nix-community/naersk
[1]: https://cs.tvl.fyi/depot/-/blob/ops/journaldriver/default.ni...
-
Nixery – Docker images on the fly with Nix
You can also use naersk¹ if you want to avoid a two-step process. It's especially convenient when using nix flakes.
¹https://github.com/nix-community/naersk
-
niv, naersk, napalm: moving on
I created https://github.com/nmattia/napalm/issues/34 and https://github.com/nmattia/naersk/issues/183 to move them to nix-community
-
Nix-ifying a Rust project
sounds exactly like what naersk does. naersk doesn't need a cargSha256 argument since it downloads dependencies from Cargo.lock. it can also grab the version number from Cargo.toml
What are some alternatives?
Home Manager using Nix - Manage a user environment using Nix [maintainer=@rycee]
crate2nix - rebuild only changed crates in CI with crate2nix and nix
fenix - Rust toolchains and rust-analyzer nightly for Nix [maintainer=@figsoda]
cargo2nix - Granular builds of Rust projects for Nix
nixpkgs-mozilla - Mozilla overlay for Nixpkgs.
nix-direnv - A fast, persistent use_nix/use_flake implementation for direnv [maintainer=@Mic92 / @bbenne10]
asdf-direnv - direnv plugin for the asdf version manager
direnv - unclutter your .profile
nix2container - An archive-less dockerTools.buildImage implementation
crane - A Nix library for building cargo projects. Never build twice thanks to incremental artifact caching.