diff options
Diffstat (limited to 'readme.md')
-rw-r--r-- | readme.md | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..9a9e0ca --- /dev/null +++ b/readme.md | |||
@@ -0,0 +1,35 @@ | |||
1 | ## nix-analyzer | ||
2 | |||
3 | `nix-analyzer` intends to be a static analysis tool for the | ||
4 | Nix programming language. | ||
5 | |||
6 | For the time-being, `nix-analyzer` works only with ASTs | ||
7 | produced by the `rnix-parser` crate and does not evaluate | ||
8 | any nix code. | ||
9 | |||
10 | ## Architecture | ||
11 | |||
12 | `nix-analyzer` has the following components: | ||
13 | |||
14 | - `bin`: the CLI/entrypoint | ||
15 | - `lib`: library of lints and utilities to define these | ||
16 | lints | ||
17 | - `macros`: procedural macros to help define a lint | ||
18 | |||
19 | ### `bin` | ||
20 | |||
21 | This is the main point of interaction between `nix-analyzer` | ||
22 | and the end user. It's output is human-readable and should | ||
23 | also support JSON/errorfmt outputs for external tools to | ||
24 | use. | ||
25 | |||
26 | ### `lib` | ||
27 | |||
28 | A library of AST-based lints and utilities to help write | ||
29 | those lints. It should be easy for newcomers to write lints | ||
30 | without being familiar with the rest of the codebase. | ||
31 | |||
32 | ### `macros` | ||
33 | |||
34 | This crate intends to be a helper layer to declare lints and | ||
35 | their metadata. | ||