2024-04-28 00:33:52 +00:00
|
|
|
---
|
|
|
|
title: "About Lix"
|
|
|
|
description: "A strictly-better implementation of the Nix language."
|
|
|
|
date: "2024-04-27"
|
|
|
|
author: "Lix Team"
|
|
|
|
---
|
2024-04-27 03:39:10 +00:00
|
|
|
|
2024-04-28 00:33:52 +00:00
|
|
|
**Lix** is an implementation of the Nix _functional package management_ language. Originally
|
2024-04-28 01:20:05 +00:00
|
|
|
codified by [CppNix](https://github.com/NixOS/nix/), the Nix language allows you to create
|
2024-05-06 16:19:05 +00:00
|
|
|
packages that can be used for anything from **putting configuration files into place** to
|
|
|
|
**declaratively managing an entire system**.
|
2024-04-27 03:39:10 +00:00
|
|
|
|
2024-05-06 16:19:05 +00:00
|
|
|
That means that, with a few well-written Nix expressions, one
|
2024-04-28 00:33:52 +00:00
|
|
|
can easily configure a system into a known state -- and the packages that are created this
|
|
|
|
way are guaranteed to run _exactly the same way_ on any system of the same architecture.
|
2024-04-27 03:39:10 +00:00
|
|
|
|
2024-05-06 16:19:05 +00:00
|
|
|
As a fork of CppNix, Lix is designed to be fully compatible with the original CppNix
|
2024-04-28 00:33:52 +00:00
|
|
|
implementation -- but also designed to allow evolution of the language and tooling, so
|
|
|
|
its developers can improve usability and ergonomics without sacrificing correctness.
|
2024-04-27 03:39:10 +00:00
|
|
|
|
2024-04-28 00:33:52 +00:00
|
|
|
### Why use Nix?
|
2024-04-27 03:39:10 +00:00
|
|
|
|
2024-05-06 16:19:05 +00:00
|
|
|
If you're not familiar with the Nix approach, we recommend checking out some of the
|
2024-04-28 00:33:52 +00:00
|
|
|
[writing on the subject](https://nixos.org/guides/nix-pills/01-why-you-should-give-it-a-try.html).
|
2024-04-27 03:39:10 +00:00
|
|
|
|
|
|
|
|
2024-04-28 00:33:52 +00:00
|
|
|
## Why Lix?
|
|
|
|
|
|
|
|
The **Nix language** is used for a variety of applications ranging from individual computers
|
|
|
|
to clusters of critical infrastructure. With this in mind, the Lix team has been working to
|
2024-04-28 01:20:05 +00:00
|
|
|
provide a collection of necessary improvements over CppNix:
|
2024-04-28 00:33:52 +00:00
|
|
|
|
2024-05-06 16:19:05 +00:00
|
|
|
- **Built for a community, not for a corporation.** <br>
|
2024-04-28 00:33:52 +00:00
|
|
|
Lix is built by a team of open-source volunteers -- and exists to provide a alternative to the
|
2024-04-28 01:20:05 +00:00
|
|
|
commercial interests that have long plagued both upstream CppNix and corporate-authored forks.
|
2024-04-28 05:05:13 +00:00
|
|
|
We're proud to stand by our open [conflict of interest statements](/team#conflict-of-interest-statements),
|
2024-04-28 00:33:52 +00:00
|
|
|
and proud to listen to community voices on issues of sponsorship, direction, and moderation.
|
|
|
|
|
2024-05-06 16:19:05 +00:00
|
|
|
- **A safe community for developers of all backgrounds.** <br>
|
2024-04-28 00:33:52 +00:00
|
|
|
Lix is developed by a diverse group of users -- and accordingly is committed to providing a
|
|
|
|
space that's safe for users and developers typically underrepresented in technical projects.
|
2024-05-06 16:19:05 +00:00
|
|
|
We take moderation seriously, and are committed to preventing bad actors from driving out
|
2024-04-28 00:33:52 +00:00
|
|
|
marginalized groups.
|
|
|
|
|
2024-05-06 16:19:05 +00:00
|
|
|
- **A correct implementation of the Nix language.** <br>
|
2024-04-28 01:20:05 +00:00
|
|
|
Recent versions of the CppNix project have introduced significant regressions -- so much so
|
2024-04-28 00:33:52 +00:00
|
|
|
that the upstream [Nixpkgs](https://github.com/nixos/nixpkgs) team has opted to remain several
|
2024-05-06 16:19:05 +00:00
|
|
|
versions behind. Lix is forked from the last truly-stable version of CppNix,
|
|
|
|
2.18 -- but has both introduced new features and backported a number of
|
|
|
|
features from newer versions without sacrificing correctness.
|
2024-04-28 00:33:52 +00:00
|
|
|
|
2024-05-06 16:19:05 +00:00
|
|
|
- **A more modern implementation of Nix.** <br>
|
|
|
|
Lix is designed for evolution of its codebase. Lix already uses the more modern
|
|
|
|
[meson build system](https://mesonbuild.com/), which improves developer usability and decreases build times.
|
2024-04-28 00:33:52 +00:00
|
|
|
Plans include a gradual, piecewise introduction of the memory-safe [Rust](https://www.rust-lang.org/)
|
2024-05-06 16:19:05 +00:00
|
|
|
programming language -- to both supplement and replace sections of the current C++ codebase.
|
2024-04-28 00:33:52 +00:00
|
|
|
|
2024-05-06 16:19:05 +00:00
|
|
|
- **A language with room to grow.** <br>
|
2024-05-05 16:13:02 +00:00
|
|
|
Unlike upstream Nix, Lix intends to be an evolving language -- a robust language versioning
|
2024-04-28 00:33:52 +00:00
|
|
|
system will allow the language to grow and evolve without sacrificing backwards-compatibility or correctness.
|
2024-05-05 16:13:02 +00:00
|
|
|
And room to grow means room for **usability and ergonomics improvements** -- both in the langauge and in
|
2024-04-28 00:33:52 +00:00
|
|
|
tooling.
|
2024-05-06 16:19:05 +00:00
|
|
|
<br>
|
2024-05-02 00:38:46 +00:00
|
|
|
|
|
|
|
## Community, Team & Governance
|
|
|
|
|
2024-05-06 16:19:05 +00:00
|
|
|
**Looking for information about the people behind the project?** <br>
|
|
|
|
Check out our [community](/community) and [team](/team) pages.
|