crate2nix
nixery
Our great sponsors
crate2nix | nixery | |
---|---|---|
10 | 18 | |
317 | 1,685 | |
3.2% | - | |
9.4 | 4.8 | |
9 days ago | about 2 months ago | |
Nix | Go | |
Apache License 2.0 | Apache License 2.0 |
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.
crate2nix
- Transitioning to Rust as a company
-
How to package a Rust app using Nix
I'll use nixpkgs' buildRustPackage. There's a few other tools, my favorite being crate2nix, but we'll leave that to a future tutorial.
-
Nix shell related questions (for rust)
If you want to iterate with nix instead of cargo, crate2nix and cargo2nix provides more caching and more fine control over your dependencies. I haven't used these two so you would have to decide for yourself. You may also want to try out nocargo for something more experimental.
-
Introducing Crane: Composable and Cacheable Builds with Cargo and Nix
I'm yet to try it out, but from the blog post, the README and the source it appears that Crane builds all dependencies in one derivation (separately from the main crate). This means that if a dependency gets added, removed or changed, all dependencies of a crate will be rebuilt. This is in contrast with https://github.com/kolloch/crate2nix, which does build every dependency in a separate package, thus you don't need to rebuild other dependencies if you only change a small part of the tree.
-
Nixery – Docker images on the fly with Nix
Yes, you will have to package it if it's not already in nixpkgs.
The good news is once you learn how, it's basically trivial with crate2nix[0], which can autogenerate nix derivations from rust crates
[0] https://github.com/kolloch/crate2nix
-
Help with Nix and Rust
From my quick reading of cargo2nix's webpage yes. https://github.com/kolloch/crate2nix has a workspaces section.
-
How do you install packages not in Nixpkgs?
As for your two applications, they're both written in Rust, and I like https://github.com/kolloch/crate2nix as a way to package Rust crates with Nix. BTW, wezterm is already in nixpkgs!
-
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).
-
How to do a full, reproducible archive of a Rust project?
Crate2nix might help: https://github.com/kolloch/crate2nix
nixery
- Way to get NVM working in CI/CD systems
-
What's your favourite Docker Image, and why?
The ones from https://nixery.dev/
-
k8s docker image with basic troubleshooting tools
You can build your own with https://nixery.dev/
-
Crafting container images without Dockerfiles
I built a service for doing this ad-hoc via image names a few years ago and it enjoys some popularity with CI & debugging use-cases: https://nixery.dev/
-
Nixpacks takes a source directory and produces an OCI compliant image
name is eerily similar to `nixpkgs`, i.e. the monorepo that defines all packages and one of the underlying technologies here. i get the play on buildpacks, but still, as a nix user it makes me do a double take reading the name
this is neat though, and in political terms, the elevator pitch mentions nix itself as an implementation detail in passing. hopefully, if this catches on, it'll function as a non-threatening gateway drug to nix itself, when users inevitably go digging into the weeds
for anyone interested, prior art on the nix container front: https://nixery.dev
-
Ask HN: Have You Left Kubernetes?
Wow, this is excellent! At a previous job, we had been using k8s + knative to spin up containers on demand, and likewise were unhappy with the delays. Spawner seems excellent.
One question: have you had to do any custom container builds on demand, and if so, have you had to deal with large containers (e.g. a Python base image with a few larger packages installed from PyPI)? We would run up against extremely long build image times using tools like kaniko, and caching would typically have only a limited benefit.
I was experimenting using Nix to maybe solve some of these problems, but never got far enough to run a speed test, and then left the job before finishing. But it seems to me some sort of algorithm like Nixery uses (https://nixery.dev) to generate cacheable layers with completely repeatable builds and nothing extraneous would help.
Maybe that's not a problem you had to solve, but if it is, I'd love your thoughts.
-
Hacker News top posts: Apr 19, 2022
Nixery – Docker images on the fly with Nix\ (38 comments)
- Nixery – Docker images on the fly with Nix
What are some alternatives?
naersk - Build Rust projects in Nix - no configuration, no code generation, no IFD, sandbox friendly.
BirdNET-Pi - A realtime acoustic bird classification system for the Raspberry Pi 4B, 3B+, and 0W2 built on the TFLite version of BirdNET.
cargo2nix - Granular builds of Rust projects for Nix
template-nix - The nix template, configured for Gitpod (www.gitpod.io) to give you pre-built, nix based ephemeral development environments in the cloud.
rust-nix-template - Rust project template with Nix (Flakes) and VSCode support
niv - Easy dependency management for Nix projects
crates.io-index - Registry index for crates.io
jib - 🏗 Build container images for your Java applications.
nix-templates - Nix Flake templates for various languages
plural - Deploy open source software on Kubernetes in record time. 🚀
nixos - My NixOS Configurations
Moby - The Moby Project - a collaborative project for the container ecosystem to assemble container-based systems