No description
Find a file
TECHNOFAB e5f47b57ae Merge branch 'feat/autodiscovery' into 'main'
feat: add autodiscovery block

See merge request rensa-nix/core!3
2026-01-20 13:50:56 +01:00
.gitlab chore(flake): update flakes, add rensa devtools, etc. 2025-12-20 21:30:34 +01:00
cells Merge branch 'feat/autodiscovery' into 'main' 2026-01-20 13:50:56 +01:00
docs feat: add autodiscovery for cell blocks 2026-01-04 20:49:21 +01:00
lib Merge branch 'feat/autodiscovery' into 'main' 2026-01-20 13:50:56 +01:00
tests test: add autodiscovery test 2026-01-04 21:39:58 +01:00
.envrc chore: update direnvrc 2025-08-26 12:56:44 +02:00
.gitignore feat: add devshell and improve input handling of cells 2025-08-06 10:13:34 +02:00
.gitlab-ci.yml chore(flake): update flakes, add rensa devtools, etc. 2025-12-20 21:30:34 +01:00
CHANGELOG.md chore(version): v0.1.1 2025-12-23 14:41:41 +01:00
flake.lock chore(deps): lock file maintenance 2026-01-01 01:06:24 +00:00
flake.nix chore: add nixtest for testing and a couple of tests 2026-01-04 21:26:08 +01:00
LICENSE.md chore: add LICENSE 2025-12-20 22:23:02 +01:00
README.md docs: write docs, add README 2025-12-20 21:27:10 +01:00

Rensa

Rensa is a powerful and flexible Nix flake framework designed to organize your Nix projects into logical units called "Cells". It is heavily inspired by divnix/std but aims to provide a streamlined experience. Feel free to check out std's awesome docs too.

Features

  • Cells: Organize your code into functional domains (e.g., backend, frontend, devops).
  • Blocks: Define types of outputs within a cell (e.g., packages, devShells, nixosConfigurations).
  • Actions: Integrate with the CLI to run commands defined in your cells.
  • Cell Flakes: Each cell can be its own flake, allowing for modular dependency management.

Quick Start

  1. Initialize a Flake: Create a flake.nix that uses rensa.
  2. Define Cells: Create a cells/ directory.
  3. Add Blocks: Add .nix files in your cells to define outputs.

Example flake.nix

{
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
    ren.url = "gitlab:rensa-nix/core";
  };

  outputs = {ren, ...}@inputs: ren.buildWith {
    inherit inputs;
    cellsFrom = ./cells;
    cellBlocks = with ren.blocks; [
      (simple "packages")
      (simple "devShells")
    ];
  } {
    packages = ren.select inputs.self [
      ["my-cell" "packages"]
    ];
  };
}

See the docs for more.