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!