mirror of
https://gitlab.com/rensa-nix/core.git
synced 2026-02-02 07:15:08 +01:00
docs: write docs, add README
This commit is contained in:
parent
abe19f9f13
commit
a7e20e203c
8 changed files with 442 additions and 0 deletions
44
README.md
Normal file
44
README.md
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
# 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](https://github.com/divnix/std) but aims to provide a streamlined experience.
|
||||
Feel free to check out std's awesome [docs](https://std.divnix.com/reference/std.html) 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`.
|
||||
1. **Define Cells**: Create a `cells/` directory.
|
||||
1. **Add Blocks**: Add `.nix` files in your cells to define outputs.
|
||||
|
||||
### Example `flake.nix`
|
||||
|
||||
```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](https://rensa.projects.tf) for more.
|
||||
Loading…
Add table
Add a link
Reference in a new issue