Jump to content

Lix: Difference between revisions

From Official NixOS Wiki
Cbrxyz (talk | contribs)
Tag: New redirect
 
AP767 (talk | contribs)
Introduced an entirely new wiki page for the Lix implementation of the nix package manager.
 
Line 1: Line 1:
#REDIRECT [[Nix_(package_manager)#Alternative_Interpreters]]
#REDIRECT [[Nix_(package_manager)#Alternative_Interpreters]]
<nowiki>'''</nowiki>Lix<nowiki>'''</nowiki> is an alternate C++ implementation of the Nix package manager focused on correctness, developer experience, and community-driven governance.
== Installation ==
On NixOS & nix-darwin there are two primary methods for installing Lix. The simpler method can be added to ones configuration.nix as follows.<syntaxhighlight lang="nix">
{ pkgs, ... }:
{
  nix.package = pkgs.lixPackageSets.stable.lix;
}
</syntaxhighlight>A more advanced, and robust change, uses an overlay to rewire other tools that depend on Nix, allowing for consistency across ones setup. To enable this change one could add the following to their configuration.nix file. <syntaxhighlight lang="nix">
{ pkgs, ... }:
{
  nixpkgs.overlays = [ (final: prev: {
    inherit (prev.lixPackageSets.stable)
      nixpkgs-review
      nix-eval-jobs
      nix-fast-build
      colmena;
  }) ];
  nix.package = pkgs.lixPackageSets.stable.lix;
}
</syntaxhighlight>after installation one can verify that the tool is functional by running the follow command:<syntaxhighlight lang="shell-session">
$ nix --version
nix (Lix, like Nix) 2.96.0
</syntaxhighlight>
== Features & Key Differences ==
* Community Governance: A primary appeal of this tool is a governance model that is driven by a transparent community based decision making process.
* Codebase Health: The Lix package manager has refactored to focus on memory safety, warning cleanliness (an overhauled error reporter), and modern C++20 standards
* Enhanced Diagnostics: Lix has improved error messaging, detailed trace outputs, and strict evaluation checks.
== Usage & Command Compatability ==
Lix serves as a drop-in replacement for the standard {{ic|nix}} CLI and classical commands ({{ic|nix-build}}, {{ic|nix-shell}}, {{ic|nix-env}}). Commands run identically to upstream Nix without changing ones workflow or the command syntax.
== See also ==
* [[Tvix]] – A modular Rust re-implementation of the Nix package manager and evaluator.
* [https://lix.systems Official Lix Website]
* [https://git.lix.systems/lix-project/lix Lix Git Repository]

Latest revision as of 02:58, 21 October 2026

'''Lix''' is an alternate C++ implementation of the Nix package manager focused on correctness, developer experience, and community-driven governance.

Installation

On NixOS & nix-darwin there are two primary methods for installing Lix. The simpler method can be added to ones configuration.nix as follows.

{ pkgs, ... }:
{
  nix.package = pkgs.lixPackageSets.stable.lix;
}

A more advanced, and robust change, uses an overlay to rewire other tools that depend on Nix, allowing for consistency across ones setup. To enable this change one could add the following to their configuration.nix file.

{ pkgs, ... }:
{
  nixpkgs.overlays = [ (final: prev: {
    inherit (prev.lixPackageSets.stable)
      nixpkgs-review
      nix-eval-jobs
      nix-fast-build
      colmena;
  }) ];

  nix.package = pkgs.lixPackageSets.stable.lix;
}

after installation one can verify that the tool is functional by running the follow command:

$ nix --version
nix (Lix, like Nix) 2.96.0

Features & Key Differences

  • Community Governance: A primary appeal of this tool is a governance model that is driven by a transparent community based decision making process.
  • Codebase Health: The Lix package manager has refactored to focus on memory safety, warning cleanliness (an overhauled error reporter), and modern C++20 standards
  • Enhanced Diagnostics: Lix has improved error messaging, detailed trace outputs, and strict evaluation checks.

Usage & Command Compatability

Lix serves as a drop-in replacement for the standard nix CLI and classical commands (nix-build, nix-shell, nix-env). Commands run identically to upstream Nix without changing ones workflow or the command syntax.

See also