Skip to content

Related Libraries

Rensa has a growing ecosystem of compatible libraries designed to work seamlessly with its cell structure. These libraries typically expose a lib output that accepts pkgs as an argument.

Available Libraries

Here are some common libraries you might want to use:

  • Rensa Devshell: Minimal devshell implementation using Modules.
  • Rensa Devtools: Utils and dev tools for the Rensa ecosystem.
  • Rensa Utils: Utilities for NixOS/darwin systems, home & disko configurations etc.
  • Nix-GitLab-CI: Allows (advanced) configuration of GitLab CI using Nix.
  • Nixible: Ansible but with Nix.
  • Tofunix: Combining Nix and Terraform for reproducibility and developer experience.
  • Nixlets: Nixlets - like Helm Charts or Grafana Tanka but instead using Nix.
  • Nixtest: Test runner for Nix code.
  • Soonix: Auto generated project files from Nix code, with gitignore handling and many generators.
  • NixMkDocs: Nix library for easy mkdocs integration into projects.
  • Torikae: Simple CLI to replace versions in files.

Usage Pattern

When using these libraries within a Cell Flake, you can instantiate them using the pkgs passed down from the parent flake. This follows the "Single Instantiation" best practice.

Example: cells/mycell/flake.nix

{
  inputs = {
    # Add the library to your inputs
    devshell.url = "gitlab:rensa-nix/devshell?dir=lib";

    # ... other inputs
  };

  outputs = i:
    i
    // {
      # Instantiate the library using the parent's pkgs
      dslib = i.devshell.lib { inherit (i.parent) pkgs; };
    };
}

Now you can use inputs.dslib in your blocks!