dotfiles
rust-overlay
dotfiles | rust-overlay | |
---|---|---|
15 | 11 | |
49 | 758 | |
- | - | |
9.1 | 9.5 | |
9 days ago | 1 day 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.
dotfiles
-
What OS do you self-host on?
NixOS. If you still need Docker you can define and manage that via Nix too. I love it, both for this and managing development environments. Happy to answer any questions.
-
What would you consider to be a must for a modern 2022 dev stack?
With Nix we have a shell.nix in the root of our repo describing all of the project's system dependencies. It looks something like this. You can pin nixpkgs with Flakes (think lockfiles) or by hardcoding a specific revision. We do the latter because I didn't want to complicate the Nix install for everyone by requiring they enable experimetnal features.
-
What Plugins do you use to manage LSP ?
Nix, for example updating from rls to rust-analyzer.
-
Switching from pyenv, rbenv, goenv and nvm to asdf – yujinyuz
I agree that the documentation story could be better. I also think it's a great shame that the language isn't statically-typed, so to understand how to use something I have to inspect its source code.
I've found it to be quite flexible though. For example, here's a commit in which I apply a patch to a tool to solve a problem that the derivation hadn't taken into account (and absent a home-manager solution): https://github.com/samhh/dotfiles/commit/867dd3b4d4b3942a0aa...
- Xmobar vs Polybar
-
Good tech blog recommendations?
You may like to look at my newsboat config. It's biased towards FP and Linux.
-
Which WM do you use, and why?
Sure thing, I manage it in my dotfiles repo here.
-
Latest xmonad on NixOS
I wonder if you'd have better luck if you built your xmonad as a proper Haskell app and didn't use the built-in --recompile stuff. It's not Nix, but see here an example of how I'm doing that.
-
What values do you like in your git global config?
Here's my config: https://github.com/samhh/dotfiles/blob/master/home/.config/git/config
-
Quick & dirty project-wide fuzzy search in vim
This is possible for quickfix, see my dotfiles commit here.
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):
What are some alternatives?
docker-mbsync - A Docker container which runs the mbsync tool automatically to synchronize your email
naersk - Build Rust projects in Nix - no configuration, no code generation, no IFD, sandbox friendly.
asdf-direnv - direnv plugin for the asdf version manager
Home Manager using Nix - Manage a user environment using Nix [maintainer=@rycee]
ImapSync - Imapsync is an IMAP transfers tool. The purpose of imapsync is to migrate IMAP accounts or to backup IMAP accounts. IMAP is one of the three current standard protocols to access mailboxes, the two others are POP3 and HTTP with webmails, webmails are often tied to an IMAP server. Upstream website is
fenix - Rust toolchains and rust-analyzer nightly for Nix [maintainer=@figsoda]
eclectica - ☀️ Cool and eclectic version manager for any language
nixpkgs-mozilla - Mozilla overlay for Nixpkgs.
nixpkgs - Nix Packages collection & NixOS
dotfiles - Configuration files for XMonad, Emacs, NixOS, Taffybar and more.
cargo2nix - Granular builds of Rust projects for Nix