lorri
naersk
lorri | naersk | |
---|---|---|
6 | 6 | |
998 | 637 | |
- | 1.6% | |
0.0 | 5.6 | |
almost 2 years ago | 14 days ago | |
Rust | Nix | |
Apache License 2.0 | 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.
lorri
-
NixOS + Haskell best practices circa March 2023
lorri
- Lorri: Project's Nix-Env
-
niv, naersk, napalm: moving on
And how does niv compare to https://github.com/target/lorri
-
A treatise on Nix
Yes, you can "hold on", it's called gcroots. There's lorri which you can also use to defer the tediousness of managing the gcroots to a daemon.
-
Per process memory and CPU usage control
Not that I know of but if you are having trouble with rebuilding and running out of memory, maybe the solution would be to cache the builds locally? You could use lorri to cache your development builds (https://github.com/target/lorri).
-
NixOS Linux
> Using a special command (nix-shell) whenever I needed to do development things (e.g. Rust builds) was not my idea of fun.
Funny you should mention that, because that's exactly what got me using Nix everywhere :). I've always hated installing tools and libraries globally—what if I need a different version for a future project?—so I like tools that sandbox as much as possible like virtualenv, cargo, cabal... etc. But these tools are all language-specific and have their own limitations (especially around native libraries and dependencies written in other languages).
nix-shell gives me the equivalent of virtualenv that works for everything. I can have a single sandboxed environment even if my project uses a bunch of different languages and I can manage everything in a reproducible, low-overhead fashion. No more worrying about making a mess by installing tools or packages globally.
Then, once I got really used to that, I spent some time setting up direnv[1] and lorri[2]—both of which are themselves managed with Nix, of course!—so that my environment gets automatically configured as soon as I enter a project directory without needing to call nix-shell explicitly. To be honest, the experience is still a bit rough, but it works well enough day-to-day that I have my reproducible sandbox cake and eat it in an mostly frictionless way too :).
[1]: https://direnv.net/
[2]: https://github.com/target/lorri
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?
direnv - unclutter your .profile
crate2nix - rebuild only changed crates in CI with crate2nix and nix
nix - Nix, the purely functional package manager
rust-overlay - Pure and reproducible nix overlay of binary distributed rust toolchains
nix-direnv - A fast, persistent use_nix/use_flake implementation for direnv [maintainer=@Mic92 / @bbenne10]
cargo2nix - Granular builds of Rust projects for Nix
nixops - NixOps is a tool for deploying to NixOS machines in a network or cloud.
nickel - Better configuration for less
dotfiles - i3 + Plasma: using the i3 window manager on the top of KDE Plasma and other dotfiles, configurations, scripts, workarounds and practises from my Debian Sid machines.
nix2container - An archive-less dockerTools.buildImage implementation