1
0
Fork
You've already forked narser
0
A Nix ARchive parSER in Zig.
Zig 86.9%
Shell 11.3%
Nix 1.8%
Find a file
2026年01月08日 18:18:57 -05:00
src Update to latest-er Zig 2026年01月08日 18:18:57 -05:00
.gitignore Update benchmark, add stuff to gitignore 2025年10月17日 17:54:11 -04:00
benchmark Update benchmark 2025年12月30日 16:46:33 -05:00
build.zig Update to latest-er Zig 2026年01月08日 18:18:57 -05:00
build.zig.zon Try latest-er master 2025年10月18日 16:13:20 -04:00
CONTRIBUTING.md Add code of conduct and update todo list 2025年06月16日 21:40:55 -04:00
flake.lock Update to latest-er Zig 2026年01月08日 18:18:57 -05:00
flake.nix Update to latest Zig master 2025年12月21日 17:55:47 -05:00
LICENSE Add parsing of single file archives 2025年05月25日 08:03:17 -04:00
README.md Try latest-er master 2025年10月18日 16:13:20 -04:00
run-benchmark Update benchmark 2025年12月30日 16:46:33 -05:00

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

  1. Clean up code
  2. Revamp the Zig interface
  3. Add documentation
  4. 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.