Lstr

Dev tools

directory listing tool

SHOW HN2025

227points
66comments
#271of 3,837 in 2025
Top 8%of 2025 by points

How HN took it

CuriousMostly questions and neutral comments

5 positive, 17 neutral or asking, 2 mixed, 4 critical, out of 28 comments about the project. Thread score +0.05.

Performance: 1 for, 3 againstExecution: 2 for, 0 againstDesign: 1 for, 1 againstIdea: 1 for, 0 against

The thread, comment by comment

Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.

positive neutral or mixed critical about another commenter or something else the maker

What HN said

What people liked

  • Display looks great and the interactive mode is useful

    From 3 comments
    • First off, the display looks great! Second off, I didn't realize how deep the dep tree would be for this type of program -- 141 total! So much of it is the url crate, itself a…
      drabbiticus on HN
    • I didn't notice, I was too busy seeing how impressive and useful this tool is. And with fuzzy matching built in? Just amazing. Good job OP.
      sdegutis on HN
    • This looks awesome! Right up my alley. Side-note: what theme are you using in the linked gif? It's right in the middle of my two favorite themes, onedark and gruvbox.
      rewgs on HN
  • Impressive that it fits in about 1000 lines of code

    From 2 comments
    • Among the features it has: an interactive terminal GUI, threaded parallel directory walking, and git repository support. In around a thousand lines of code, total, including…
      JoshTriplett on HN
    • Doing this in just over 1000 lines of code is really inspiring. I was bracing myself for something quite a lot larger and, honestly, gearing up to use that as an excuse not to…
      gorgoiler on HN

Objections

  • Release binary size is large (around 4MB) for what it does

    From 2 comments
    • No offense, but 4.3MB is huge for what it does. Most shells take less space than that! Where's all the bloat coming from?
      esafak on HN
    • Great catch! Comments mentioned getting it down to ~2MB but that’s still humongous. If you just think about how roughly (napkin math) 2MB can be 100k loc, that’s nuts
      getcrunk on HN
  • Demo gif shows broken icons from missing fonts

    From 2 comments
    • Seems quite cool! Though the demo gif with (what seem to be?) broken icons is a bold choice :p
      ipdashc on HN
    • How would that solve the font problem? I feel like that would only make the problem of having unsupported fonts even worse.
      nightpool on HN

Requests

  • Reduce binary size through release build settings

    From 3 comments
    • You are probably looking at a debug build. On Linux, a release build (cargo build -r) is ~4.3M, and down to ~3.5M once stripped. This could be reduced further with some tricks…
      fabrice_d on HN
    • Building in release: ``` cargo build --release du -sh ./target/release/lstr -> 4.4M ``` Building with other release options brings it down to 2.3M: ``` [profile.release]…
      pveierland on HN
    • > The binary is also 53M That's a debug binary, and the vast majority of that is debug symbols. A release build of this project is 4.3M, an order of magnitude smaller. Also,…
      JoshTriplett on HN
  • Fix the demo gif rendering

    From 2 comments
    • Seems quite cool! Though the demo gif with (what seem to be?) broken icons is a bold choice :p
      ipdashc on HN
    • lol good catch, and I totally missed it I used vhs to record the gif which must not run the script in my native terminal! I’ll have to see about fixing it!
      w108bmg on HN

Questions

  • Why are Rust dependencies so numerous and what makes the binary large

    From 2 comments
    • First off, the display looks great! Second off, I didn't realize how deep the dep tree would be for this type of program -- 141 total! So much of it is the url crate, itself a…
      drabbiticus on HN
    • > Most shells take less space than that! Most shells dynamically link to a runtime your OS provides "for free". The 4.3 MiB binary in question is bundling the Rust runtime and…
      koito17 on HN
  • How does it differ from erdtree and broot

    From 2 comments
    • Neat, looks like a combination of erdtree[0] and broot[1]. I use both on a daily basis, are there any features that stand out from the two? [0]:…
      aystatic on HN
    • On interactive mode "ls tree" tools, an interesting one is broot. https://github.com/Canop/broot
      fer on HN

Alternatives named

  • eza

    From 2 comments
    • I really love all the "modern" takes on classic tools by the Rust community. I'm using eza (aka exa), aliased as ls, which has "tree" built in (aliased as lt), amongst others, as…
      berkes on HN
    • Likely needs features tuned. I compared Eza, similarly in Rust, and it's 1.6 MiB compiled. Looking at the Cargo.toml, it includes git2 with default-features = false.…
      CGamesPlay on HN
  • broot

    From 2 comments
    • On interactive mode "ls tree" tools, an interesting one is broot. https://github.com/Canop/broot
      fer on HN
    • Neat, looks like a combination of erdtree[0] and broot[1]. I use both on a daily basis, are there any features that stand out from the two? [0]:…
      aystatic on HN
  • erdtree

    From 1 comment
    • Neat, looks like a combination of erdtree[0] and broot[1]. I use both on a daily basis, are there any features that stand out from the two? [0]:…
      aystatic on HN

Category, keywords, summaries and labels on this page were made by AI (Thread Reader v2) and not checked by hand. Each point links to the comments it came from.

Add a badge to your READMEShown on HackerShow
[![Shown on HackerShow](https://hackershow.org/badge.svg)](https://hackershow.org/show/44306041)