Click the M
/ A toggle in the top left to switch back to markdown.
Quick update — just tagged v0.1.8.
Main change is a simple NamePool for the entry names. It’s basically just a list of chunks. Name comes in, if the current chunk doesn’t have enough room left I allocate a new one. Avoids the old “dupe every single name” approach and everything gets freed in one shot at the end. Makes a noticeable difference once the directory gets larger.
Also refreshed the README benchmarks with matching colored-grid flags for zl / eza / lsd. The previous eza numbers that stayed flat around 3 ms even at 50k were a bad run on my side — ignore those. New table has zl ahead on every size (roughly 3× vs eza).
Would be interesting to hear if the numbers hold up on other machines.
Quick update.
zlist can now be configured with a .zon file — icons, colors, that kind of thing. Leave a field out and the built-in default stays.
Also did another pass on large directories. Same colored-grid setup as before:
| n=5000 | n=50000 | |
|---|---|---|
| before | 5.9ms (U 3.3) | 49.9ms (U 32.2) |
| after | 3.5ms (U 1.6) | 32.5ms (U 15.5) |
Output is a bit tighter now too, and there’s a --color flag (auto / always / never), plus NO_COLOR / CLICOLOR_FORCE.
Repo: GitHub - here-Leslie-Lau/zlist: A modern ls alternative written in Zig. · GitHub
Hey Leslie,
Very cool project. The git integration is fabulous.
One thing that I find weird is that, when using globs, files in the current directory get the same treatment as directories. The screenshot compares with ls, where files in the current directory are grouped together.
It looks like a bug; I’ll fix it in the next version.
