rust-overlay
nix-templates
rust-overlay | nix-templates | |
---|---|---|
11 | 8 | |
758 | 42 | |
- | - | |
9.5 | 4.0 | |
5 days ago | about 1 month ago | |
Nix | Nix | |
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):
nix-templates
-
How to add a haskell flake as the dependency for another haskell flake?
} I tried adding vox-hs = vox-hs-in.defaultPackage.${system} `` wherecallCabal2nixis called. This flake is taken from the [Practical Nix Flakes](https://serokell.io/blog/practical-nix-flakes) article which mentions this is where dependency overrides go. I have also trued adding my package as an overlay when definingpkgs`, but couldn't get this to work either. Whats the best method for a haskell flake to depend on another haskell flake? Thanks!
- Nix Flakes
-
Migrating from Void Linux to NixOS, dotfiles and home manager!
Here's one intro guide to Flakes by Nix's creator Dolstra. Here's another good intro tutorial. Note that that last one also has our answer to wtf legacyPackages is:
-
what's the recommended setup?
This guide is what I use and it works well. Direnv is great and has integration with emacs if that’s your editor.
-
How should dependencies be specified for the Haskell C FFI with callCabal2Nix?
I've previously just used Stack's Nix support for simple builds; now I'm tyring to get up and running packaging a Haskell application (that uses the C FFI) as a Flake. I'm working from this base (borrowed from https://serokell.io/blog/practical-nix-flakes):
- Big list of Flakes tutorials
-
Nix-ifying a Rust project
I like the way crate2nix works. I have made a flake template for it here. Sometimes it requires a couple of overrides to fix some misbehaving crates (see https://github.com/balsoft/simple-osd-daemons/blob/master/flake.nix#L29 for an example of such overrides), but otherwise it's fantastic. It doesn't require any hash nonsense, it downloads and builds all the crates separately (unlike naersk or other solutions) so you get all the benefits of Nix (reproducibility and proper caching).
What are some alternatives?
naersk - Build Rust projects in Nix - no configuration, no code generation, no IFD, sandbox friendly.
templates - Flake templates
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.
haskell-nix - Nix and Haskell in production
asdf-direnv - direnv plugin for the asdf version manager
himalaya - CLI to manage emails