blob: 99298cd589f6cb775b9e4f627098d05d85cff9ce (plain
noXCUse: New Open XCU Simple Edition
or, No Excuse for bloat and brokenness
This package is a collection of implementation of some (but by no
means all) of the utilities specified in the SUS/POSIX "XCU" (Shell &
Utilities) volume. They are designed to be as simple as possible while
meeting the requirements of the standard and general usability
considerations (like not being horrendously slow or imposing excessive
limitations). Unlike other size-oriented implementations such as
Busybox and Toybox, noXCUse does not use a unified binary or
significant amounts of shared-across-tools library code, making it
easy to cherry-pick the set of tools you need for a particular system.
Development priority has been given to the tools whose implementations
in Busybox are inadequate; in most cases, it's a matter of Busybox
failing to support multibyte characters (UTF-8) in utilities whose
primary function is character processing (such as fold and wc).
In addition to the "priority" utilities, some low-hanging fruit (that
is, utterly trivial utilities) has been included simply "because it's
These utilities were developed and tested using musl as the C library,
and while they aim to be conforming programs with respect to SUS, they
make some assumptions: for example that multibyte character encoding
is stateless and that resynchronization is possible. The iconv utility
also has a hard-coded list of (as subset of) the charsets supported by
musl, since there is no portable way to query the C iconv interface
for this information.
Finally, note that aside from the iconv utility, no development has
been done on these utilities since 2007 (pre-SUSv4/POSIX-2008). I may
gradually add more utilities to the collection, but this is completely
a side project.
Rich Felker / dalias