- cross-posted to:
- rust@lemmy.ml
- commandline@programming.dev
- cross-posted to:
- rust@lemmy.ml
- commandline@programming.dev
Crossposted from https://lemmy.ml/post/48563577
Initial release of FLI - really tiny and fast (like a 🪰) directory listing tool.
Initial Why: need some easy readable ls like tool for rpi to use via ssh.
Current Why: check if with Rust one can build core utils like tools faster and smaller.
- Size:
18K - RPI ZERO W
51KB - Mac
-
Default mode streams readdir() => stdout with zero heap allocation.
-
Nice readabilty thx to (📄 and 🗂️) instead of text coloring
-
Written in no_std #rust + libc.
https:// github.com/tracyspacy/fli
"-C", "link-arg=-lstdc++", "-C", "link-arg=-lsupc++", "-C", "link-arg=-lgcc_s"Now, that’s just funny. But hey, you’re using
-Osto keep that binary size low 😇And what’s with the global allocator being initialized in a module? (didn’t/don’t know if that even works)
If you want to do things really minimally, check out the
rustixcrate which wraps syscalls directly.Otherwise, and if loading huge shared libraries is fine, then you might as well not go
nostdat all, since you can just pass-C prefer-dynamicfor that elusive magically-small std-using binary 🙄"-C", "link-arg=-lstdc++", "-C", "link-arg=-lsupc++", "-C", "link-arg=-lgcc_s"good catch!
rustix - take a look, thx.
no_std was my deliberate choice.
-C prefer-dynamic- it feels that it may be a more fragile option and add some hassles with cross compiling - something likeerror while loading shared libraries: ...so I have to provide libstd.so as well together with binary to rpi … where is the gain?


