No description
Find a file
Yorhel 5a0c8c6175 Add hardlink counting support for the new export format
This ended up a little different than I had originally planned.

The bad part is that my idea for the 'prevlnk' references wasn't going
to work out. For one because the reader has no efficient way to
determine the head reference of this list and implementing a lookup
table would be pretty costly and complex, and second because even with
those references working, they'd be pretty useless because there's no
way to go from an itemref to a full path. I don't see an easy way to
solve these problems, so I'm afraid the efficient hardlink list feature
will have to be disabled when reading from this new format. :(

The good news is that removing these references simplifies the hardlink
counting implementation and removes the requirement for a global inode
map and associated mutex. \o/

Performance is looking really good so far, too.
2024-08-01 07:32:38 +02:00
LICENSES Add REUSE-compliant copyright headers 2021-07-18 11:50:50 +02:00
src Add hardlink counting support for the new export format 2024-08-01 07:32:38 +02:00
.gitignore gitignore: Also ignore the newer .zig-cache/ 2024-07-12 09:26:37 +02:00
build.zig Add (temporary) compression support for the new export format 2024-07-31 12:55:43 +02:00
ChangeLog Version 2.5 2024-07-24 14:07:17 +02:00
Makefile Build: remove preferred_optimize_mode 2024-04-25 14:15:46 +02:00
ncdu.1 Rename threading flag to -t,--threads + update man page 2024-07-18 07:49:41 +02:00
ncdubinexp.pl Add hardlink counting support for the new export format 2024-08-01 07:32:38 +02:00
README.md README: Mention zig 0.13 as well 2024-07-18 10:53:55 +02:00

ncdu-zig

Description

Ncdu is a disk usage analyzer with an ncurses interface. It is designed to find space hogs on a remote server where you don't have an entire graphical setup available, but it is a useful tool even on regular desktop systems. Ncdu aims to be fast, simple and easy to use, and should be able to run in any minimal POSIX-like environment with ncurses installed.

See the ncdu 2 release announcement for information about the differences between this Zig implementation (2.x) and the C version (1.x).

Requirements

  • Zig 0.12 or 0.13.
  • Some sort of POSIX-like OS
  • ncurses libraries and header files

Install

You can use the Zig build system if you're familiar with that.

There's also a handy Makefile that supports the typical targets, e.g.:

make
sudo make install PREFIX=/usr