impermanence
nickel
Our great sponsors
impermanence | nickel | |
---|---|---|
33 | 46 | |
878 | 2,127 | |
10.4% | 3.0% | |
5.9 | 9.5 | |
about 2 months ago | 4 days ago | |
Nix | Rust | |
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.
impermanence
-
Tvix – A New Implementation of Nix
I would not call these projects unbelievable, but they are neat.
- Opt-in state: https://github.com/nix-community/impermanence and https://grahamc.com/blog/erase-your-darlings/
-
Every NixOS rebuild creates a new Tailscale machine
That way will work - I use the impermanence module which works similarly but allows to hide mounts.
-
Silverblue users: why?
This is indeed a blind spot. Thanks for pointing that out! Silverblue -to my knowledge- doesn't do a lot to address this. Though, 3rd-party tools like Home Manager and the suite of applications developed by the folks over at uBlue might be able to limit this to a minimum. Though I'm not sure if it surpasses NixOS in this regard; for the uninitiated. Though, to my knowledge, this requires special attention and depends on the specifics of the NixOS system in question.
- NixOS for the Impatient
- How to add impermanence afterwards?
-
File system choice for Impermanence setup
I have recently stumbled upon Impermanence - modules to help you handle persistent state on systems with ephemeral root storage, and the concept seems quite nice.
-
Erase your darlings: Can this be applied to /home?
I haven't used it yet but nix-community/impermanence has a home-manager module that might be useful.
-
Interested in NixOS, have some questions
Some files in /etc (like saved networks) will still not be managed by NixOS, if you want to have full control over them use Impermanence
-
Upgrading to NixOS 22.11 Issue
{ imports = [ (modulesPath + "/installer/scan/not-detected.nix") "${builtins.fetchGit { url = "https://github.com/NixOS/nixos-hardware.git"; }}/system76" "${builtins.fetchGit { url = "https://github.com/nix-community/impermanence.git"; }}/nixos.nix" ];
-
Good guides for a non-developer using NixOS?
There is a maintained collection of modules for running this kind of NixOS setup. It's called impermanence.
nickel
-
Nix – A One Pager
So, its key features are:
1. domain-specific: designed for conveniently creating and composing derivations. This reason alone already justifies a new language, or an embedded domain-specific language (such as the Guile/Scheme for guix), or a mix of both (Starlark, the build language of Bazel embedded in a restricted Python-variant).
2. purely functional: this ties well into the philosophical backing of Nix the package manager, which aims to be purely functional, also known as hermeticity in other build systems (Bazel).
3. lazily evaluated: similar to other build systems (including Bazel), so that you can build only what you need on demand.
4. dynamically typed: this one is controversial. Being dynamically typed—in other words, not developing a type system—gets Nix out of the door first. But users often complain about the lack of proper types and modularity. There are experiments to address this, such as Nickel (https://github.com/tweag/nickel).
It is understandable that a one-pager may not have space for the whys.
-
10 Ways for Kubernetes Declarative Configuration Management
Nickel:Nickel is a straightforward configuration language aimed at automatically generating static configuration files. Essentially, it's akin to JSON with the addition of functions and types.
-
Show HN: Togomak – declarative pipeline orchestrator based on HCL and Terraform
Also look at nickel which is an evolution of nix. It's my favorite in this space.
nickel-lang.org
- Show HN: Flake schemas – teaching Nix about your flake outputs
-
What config format do you prefer?
Or this https://github.com/tweag/nickel
-
Nickel 1.0
Nickel is a programming language. While HCL is just a configuration format, so not really comparable.
Here's a comparison with similar tools: https://github.com/tweag/nickel#comparison
-
Announcing Nickel 1.0, a configuration language written in (and usable from) Rust
As for 'providence', I suppose you meant provenance :) it's been delayed because this was less critical for 1.0 to decide on or to implement (as it: it doesn't break backward compatibility in any way to add this feature in the short term), but this is very much on the roadmap: Issue #235. That's a must-have in a language with merging like Nickel.
-
Rewrite it in Rust: Kubernetes
Have you considered using a different language for templating? this could be a BIG selling point. Some good ones are cue-lang (though I haven't seen support for rust), kcl or nickel-lang.
- Nickel v1.0.0
- Design rationale for the Nickel configuration language
What are some alternatives?
home-manager - Manage a user environment using Nix [maintainer=@rycee] [Moved to: https://github.com/nix-community/home-manager]
rnix-lsp - WIP Language Server for Nix! [maintainer=@aaronjanse]
nix-config - Nix configurations
nixos - My NixOS Configurations
nixpkgs - My Nix system configs!
nix-gui - Use NixOS Without Coding
raspi-overlayroot - Protect your SD card against wear and tear
nix-doc - An interactive Nix documentation tool providing a CLI for function search, a Nix plugin for docs in the REPL, and a ctags implementation for Nix script
nix-config - :space_invader: NixOS configuration
AppImageKit - Package desktop applications as AppImages that run on common Linux-based operating systems, such as RHEL, CentOS, openSUSE, SLED, Ubuntu, Fedora, debian and derivatives. Join #AppImage on irc.libera.chat
dotfiles - My personal dotfiles
nix - Nix, the purely functional package manager