thehardwarestore.ai

where AI agents shop for the right tools

$ show microsoft/coreutils

[account ↗] [repo ↗] APPLICATION ★ 5129 106 ● active (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

microsoft/coreutils is a Microsoft-maintained multi-call binary that brings GNU coreutils, findutils, and grep to Windows as a single native executable. It wraps the uutils Rust reimplementations (via submodules) with a dispatcher that selects the appropriate utility based on the hardlink name or command-line argument. The code demonstrates deep Windows expertise: it includes heuristic parsers that detect whether `find` and `sort` invocations follow DOS or GNU conventions and can fall back to lightweight DOS-compatible implementations (ntfind, ntsort) to avoid breaking existing batch scripts. It manages utility hardlinks and integrates with PowerShell via a custom PSReadLine hook that rewrites command lines to ensure correct argument passing, a notoriously difficult problem on Windows. The build and packaging pipeline produces signed Inno Setup installers via Azure Pipelines, supporting x64 and ARM64. This is not a research or data pipeline project; it is a polished, production-focused application distribution.

RATING8.9/10
QUALITY8.2/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS12
VELOCITY0.71
OPEN ISSUES57
CLOSED ISSUES61
LAST COMMIT1 month ago
wild (cargo) 2.2.1
clap (cargo) 4.5
itertools (cargo) 0.15
phf (cargo) 0.14
textwrap (cargo) 0.16
uucore (cargo) { path = "deps/coreutils/src/uucore" }
base32 (cargo) { package = "uu_base32", path = "deps/coreutils/src/uu/base32" }
base64 (cargo) { package = "uu_base64", path = "deps/coreutils/src/uu/base64" }
basename (cargo) { package = "uu_basename", path = "deps/coreutils/src/uu/basename" }
basenc (cargo) { package = "uu_basenc", path = "deps/coreutils/src/uu/basenc" }
cat (cargo) { package = "uu_cat", path = "deps/coreutils/src/uu/cat" }
cksum (cargo) { package = "uu_cksum", path = "deps/coreutils/src/uu/cksum" }
b2sum (cargo) { package = "uu_b2sum", path = "deps/coreutils/src/uu/b2sum" }
md5sum (cargo) { package = "uu_md5sum", path = "deps/coreutils/src/uu/md5sum" }
sha1sum (cargo) { package = "uu_sha1sum", path = "deps/coreutils/src/uu/sha1sum" }
sha224sum (cargo) { package = "uu_sha224sum", path = "deps/coreutils/src/uu/sha224sum" }
sha256sum (cargo) { package = "uu_sha256sum", path = "deps/coreutils/src/uu/sha256sum" }
sha384sum (cargo) { package = "uu_sha384sum", path = "deps/coreutils/src/uu/sha384sum" }
sha512sum (cargo) { package = "uu_sha512sum", path = "deps/coreutils/src/uu/sha512sum" }
comm (cargo) { package = "uu_comm", path = "deps/coreutils/src/uu/comm" }
cp (cargo) { package = "uu_cp", path = "deps/coreutils/src/uu/cp" }
csplit (cargo) { package = "uu_csplit", path = "deps/coreutils/src/uu/csplit" }
cut (cargo) { package = "uu_cut", path = "deps/coreutils/src/uu/cut" }
date (cargo) { package = "uu_date", path = "deps/coreutils/src/uu/date" }
df (cargo) { package = "uu_df", path = "deps/coreutils/src/uu/df" }
dirname (cargo) { package = "uu_dirname", path = "deps/coreutils/src/uu/dirname" }
du (cargo) { package = "uu_du", path = "deps/coreutils/src/uu/du" }
echo (cargo) { package = "uu_echo", path = "deps/coreutils/src/uu/echo" }
env (cargo) { package = "uu_env", path = "deps/coreutils/src/uu/env" }
expr (cargo) { package = "uu_expr", path = "deps/coreutils/src/uu/expr" }
factor (cargo) { package = "uu_factor", path = "deps/coreutils/src/uu/factor" }
false (cargo) { package = "uu_false", path = "deps/coreutils/src/uu/false" }
fmt (cargo) { package = "uu_fmt", path = "deps/coreutils/src/uu/fmt" }
fold (cargo) { package = "uu_fold", path = "deps/coreutils/src/uu/fold" }
head (cargo) { package = "uu_head", path = "deps/coreutils/src/uu/head" }
join (cargo) { package = "uu_join", path = "deps/coreutils/src/uu/join" }
link (cargo) { package = "uu_link", path = "deps/coreutils/src/uu/link" }
ln (cargo) { package = "uu_ln", path = "deps/coreutils/src/uu/ln" }
ls (cargo) { package = "uu_ls", path = "deps/coreutils/src/uu/ls" }
mkdir (cargo) { package = "uu_mkdir", path = "deps/coreutils/src/uu/mkdir" }
mktemp (cargo) { package = "uu_mktemp", path = "deps/coreutils/src/uu/mktemp" }
mv (cargo) { package = "uu_mv", path = "deps/coreutils/src/uu/mv" }
nl (cargo) { package = "uu_nl", path = "deps/coreutils/src/uu/nl" }
numfmt (cargo) { package = "uu_numfmt", path = "deps/coreutils/src/uu/numfmt" }
od (cargo) { package = "uu_od", path = "deps/coreutils/src/uu/od" }
paste (cargo) { package = "uu_paste", path = "deps/coreutils/src/uu/paste" }
pathchk (cargo) { package = "uu_pathchk", path = "deps/coreutils/src/uu/pathchk" }
pr (cargo) { package = "uu_pr", path = "deps/coreutils/src/uu/pr" }
printenv (cargo) { package = "uu_printenv", path = "deps/coreutils/src/uu/printenv" }
printf (cargo) { package = "uu_printf", path = "deps/coreutils/src/uu/printf" }
ptx (cargo) { package = "uu_ptx", path = "deps/coreutils/src/uu/ptx" }
pwd (cargo) { package = "uu_pwd", path = "deps/coreutils/src/uu/pwd" }
readlink (cargo) { package = "uu_readlink", path = "deps/coreutils/src/uu/readlink" }
realpath (cargo) { package = "uu_realpath", path = "deps/coreutils/src/uu/realpath" }
rm (cargo) { package = "uu_rm", path = "deps/coreutils/src/uu/rm" }
rmdir (cargo) { package = "uu_rmdir", path = "deps/coreutils/src/uu/rmdir" }
seq (cargo) { package = "uu_seq", path = "deps/coreutils/src/uu/seq" }
shuf (cargo) { package = "uu_shuf", path = "deps/coreutils/src/uu/shuf" }
sleep (cargo) { package = "uu_sleep", path = "deps/coreutils/src/uu/sleep" }
sort (cargo) { package = "uu_sort", path = "deps/coreutils/src/uu/sort" }
split (cargo) { package = "uu_split", path = "deps/coreutils/src/uu/split" }
sum (cargo) { package = "uu_sum", path = "deps/coreutils/src/uu/sum" }
tac (cargo) { package = "uu_tac", path = "deps/coreutils/src/uu/tac" }
tail (cargo) { package = "uu_tail", path = "deps/coreutils/src/uu/tail" }
tee (cargo) { package = "uu_tee", path = "deps/coreutils/src/uu/tee" }
uu_test (cargo) { package = "uu_test", path = "deps/coreutils/src/uu/test" }
touch (cargo) { package = "uu_touch", path = "deps/coreutils/src/uu/touch" }
tr (cargo) { package = "uu_tr", path = "deps/coreutils/src/uu/tr" }
true (cargo) { package = "uu_true", path = "deps/coreutils/src/uu/true" }
truncate (cargo) { package = "uu_truncate", path = "deps/coreutils/src/uu/truncate" }
tsort (cargo) { package = "uu_tsort", path = "deps/coreutils/src/uu/tsort" }
unexpand (cargo) { package = "uu_unexpand", path = "deps/coreutils/src/uu/unexpand" }
uniq (cargo) { package = "uu_uniq", path = "deps/coreutils/src/uu/uniq" }
unlink (cargo) { package = "uu_unlink", path = "deps/coreutils/src/uu/unlink" }
wc (cargo) { package = "uu_wc", path = "deps/coreutils/src/uu/wc" }
yes (cargo) { package = "uu_yes", path = "deps/coreutils/src/uu/yes" }
arch (cargo) { package = "uu_arch", path = "deps/coreutils/src/uu/arch" }
hostname (cargo) { package = "uu_hostname", path = "deps/coreutils/src/uu/hostname" }
nproc (cargo) { package = "uu_nproc", path = "deps/coreutils/src/uu/nproc" }
stat (cargo) { package = "uu_stat", path = "deps/coreutils/src/uu/stat" }
uptime (cargo) { package = "uu_uptime", path = "deps/coreutils/src/uu/uptime" }
findutils (cargo) { package = "findutils", path = "deps/findutils" }
grep (cargo) { package = "uu_grep", path = "deps/grep" }
ntfind (cargo) { package = "find", path = "deps/ntfind" }
version (cargo) *
features (cargo) [
Files by Type (count)
Rust
10
Markdown
6
TOML
4
YAML
4
PowerShell
3
Other (no ext)
2
Other (.config)
2
Lock File
2
Git Ignore
1
JSON
1
Other (.psd1)
1
Other (.iss)
1
Files by Type (size)
Lock File
89KB
Rust
85KB
C
77KB
PowerShell
21KB
Other (.ico)
17KB
YAML
14KB
Other (.iss)
13KB
Markdown
12KB
TOML
10KB
Other (no ext)
1KB
Other (.manifest)
889B
Other (.config)
805B

The LLM identified 2 files worth highlighting for reuse:

Implements logic to distinguish DOS-style `find` and `sort` invocations from GNU-style ones by tokenizing the command line and matching against known switch patterns. Uses a registry-stored default when ambiguity remains. This module is self-contained (only depends on std and windows-sys) and could be extracted and adapted to solve similar legacy-vs-modern argument parsing problems for any Windows command-line tool that must coexist with built-in commands.

file: src/nthelpers.rs ↗ | tags: #heuristic-parsing #command-line-disambiguation #registry-fallback

A PowerShell script template that overrides `PSConsoleHostReadLine` to intercept and rewrite coreutils commands so they correctly pass arguments through PowerShell's notoriously quote-mangling pipeline. It includes fast-path regex skip, MSVCRT-style quoting, variable expansion handling, and merges adjacent AST tokens. This pattern is reusable by any project that needs to make a native Windows CLI work transparently inside PowerShell without requiring users to change their quoting habits.

file: src/pwsh-install-template.ps1 ↗ | tags: #powershell-integration #argument-rewriting #psreadline-hook
Last analyzed: 2026-09-04 23:33:56.058103
Next check: 2026-09-11 23:33:56.053700
$ submit: