aboutsummaryrefslogtreecommitdiff
path: root/readme.md
diff options
context:
space:
mode:
authorAkshay <[email protected]>2021-09-11 16:48:09 +0100
committerAkshay <[email protected]>2021-09-11 16:48:09 +0100
commit171a4fa4d15c4be14d63fdc5d258610bb26bd162 (patch)
tree3a8c105edb03481fe11e1486a23d165a686aecd5 /readme.md
parente6ee0c4246c95d48dc7a63565ccb6f022f67dbec (diff)
restructure repo into bin, lib and macros
Diffstat (limited to 'readme.md')
-rw-r--r--readme.md35
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
4Nix programming language.
5
6For the time-being, `nix-analyzer` works only with ASTs
7produced by the `rnix-parser` crate and does not evaluate
8any 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
21This is the main point of interaction between `nix-analyzer`
22and the end user. It's output is human-readable and should
23also support JSON/errorfmt outputs for external tools to
24use.
25
26### `lib`
27
28A library of AST-based lints and utilities to help write
29those lints. It should be easy for newcomers to write lints
30without being familiar with the rest of the codebase.
31
32### `macros`
33
34This crate intends to be a helper layer to declare lints and
35their metadata.