| src | Update to latest-er Zig | |
| .gitignore | Update benchmark, add stuff to gitignore | |
| benchmark | Update benchmark | |
| build.zig | Update to latest-er Zig | |
| build.zig.zon | Try latest-er master | |
| CONTRIBUTING.md | Add code of conduct and update todo list | |
| flake.lock | Update to latest-er Zig | |
| flake.nix | Update to latest Zig master | |
| LICENSE | Add parsing of single file archives | |
| README.md | Try latest-er master | |
| run-benchmark | Update benchmark | |
Narser, a Nix ARchive parSER library and program
Narser is a replacement for nix nar that aims to be simple and fast.
Currently, narser pack is around twice as fast as Nix at packing the Linux kernel source code, at least when discarding the output or writing to a tmpfs. (see benchmark)
However, the hash subcommand is somewhat slower than nix hash path.
NOTE: Not to be confused with the Narser parser generator, which is 9 years old.
WARNING: DO NOT run on a filesystem with case-insensitive file names as that allows an attacker to write to arbitrary files with the same permissions as the invoking user. Narser does not and will not support Nix's case-hacking on MacOS.
Building
Narser targets 0.15.1 as there is a huge performance regression in narser hash in 0.15.2.
For release builds, Nix is used.
The fast and small packages have little to no benefit and are only included for completeness.
TODO
- Clean up code
- Revamp the Zig interface
- Add documentation
- Add more tests
Contributing
Please read CONTRIBUTING.md for some guidelines and view some of my other repos for contact information.
TL;DR: There is nothing to worry about if you don't use AI and you follow Github's ToS.