ls replacement

Example output

Permissions | Owner | Group | Size   | Modified             | Name                 | 
----------- | ----- | ----- | ------ | -------------------- | -------------------- | 
rw-rw-r--   | 1000  | 1000  | 19 KB  | 2023-11-09 20:25:07  | Cargo.lock           | 
rwxrwxr-x   | 1000  | 1000  | 2 MB   | 2023-11-09 20:12:00  | testings             | 
rwxrwxr-x   | 1000  | 1000  | 4 KB   | 2023-11-09 22:08:49  | assets               | 
rwxrwxr-x   | 1000  | 1000  | 4 KB   | 2023-11-09 20:25:29  | src                  | 
rw-rw-r--   | 1000  | 1000  | 356 B  | 2023-11-09 20:25:07  | Cargo.toml           | 
rw-rw-r--   | 1000  | 1000  | 350 B  | 2023-11-09 20:11:54  | gen-big-folders.js   | 
rwxrwxr-x   | 1000  | 1000  | 4 KB   | 2023-11-09 22:04:43  | target               | 
rw-rw-r--   | 1000  | 1000  | 316 B  | 2023-11-09 21:59:38  | .gitignore           | 
rwxrwxr-x   | 1000  | 1000  | 4 KB   | 2023-11-08 19:51:26  | benches              |

Results

Tested over 100.000 of ~164 Bytes each file

Method Mean time
eza 1.656 s
ls 338.70 ms
Stdout directly 290.03 ms
Buffer first reserving massive memory 271.53 ms
Stdout directly manual std lock 247.21 ms
Buffer first then push each line then stdout 241.72 ms
Parallel read directory then push each line then stdout 96.54 ms