@@ -8,20 +8,20 @@ A minimalist BusyBox alternative written in modern C++23.
88[ ![ License: MIT] ( https://img.shields.io/badge/License-MIT-yellow.svg )] ( https://opensource.org/licenses/MIT )
99[ ![ C++23] ( https://img.shields.io/badge/C++23-00599C?logo=cplusplus )] ( https://en.cppreference.com/w/cpp/23 )
1010[ ![ CMake] ( https://img.shields.io/badge/CMake-3.26+-064F8C?logo=cmake )] ( https://cmake.org/ )
11- [ ![ Tests] ( https://img.shields.io/badge/Tests-331_passing -brightgreen )] ( tests/ )
12- [ ![ Applets] ( https://img.shields.io/badge/Applets-109 -brightgreen )] ( src/applets/ )
11+ [ ![ Tests] ( https://img.shields.io/badge/Tests-379_passing -brightgreen )] ( tests/ )
12+ [ ![ Applets] ( https://img.shields.io/badge/Applets-115 -brightgreen )] ( src/applets/ )
1313
1414## Overview
1515
16- CFBox is a single-executable Unix utility collection distributed via symbolic links. 109 applets implemented and tested, with a CI pipeline covering native builds, cross-compilation, and QEMU user/system-mode testing. Features configurable CMake builds (per-applet toggles), GNU-style long options, and colored help output.
16+ CFBox is a single-executable Unix utility collection distributed via symbolic links. 115 applets implemented and tested, with a CI pipeline covering native builds, cross-compilation, and QEMU user/system-mode testing. Features configurable CMake builds (per-applet toggles), GNU-style long options, and colored help output.
1717
1818** Design philosophy:** Simplicity first — Modern C++ (` std::expected ` ) — Embedded-friendly (cross-compilation, static linking)
1919
2020## Size Comparison
2121
2222| Project | Language | Size | Applets | Size/Applet |
2323| ---------| ----------| ------| ---------| -------------|
24- | ** CFBox (size-opt)** | ** C++23** | ** 446 KB** | ** 109 ** | ** ~ 4.1 KB** |
24+ | ** CFBox (size-opt)** | ** C++23** | ** 406 KB** | ** 115 ** | ** ~ 3.5 KB** |
2525| Toybox | C | ~ 500 KB | 238 | ~ 2.1 KB |
2626| BusyBox (full) | C | ~ 1.7 MB | 274 | ~ 9 KB |
2727| uutils/coreutils | Rust | ~ 11 MB | ~ 100 | ~ 110 KB |
@@ -50,7 +50,7 @@ cmake -B build
5050cmake --build build
5151
5252# Test
53- ctest --test-dir build --output-on-failure # 331 GTest unit tests
53+ ctest --test-dir build --output-on-failure # 379 GTest unit tests
5454bash tests/integration/run_all.sh # 54 integration test scripts
5555
5656# Run via subcommand
@@ -61,15 +61,15 @@ bash tests/integration/run_all.sh # 54 integration test scripts
6161echo " Hello, World!" # now calls cfbox via symlink
6262```
6363
64- ## Supported Commands (109 )
64+ ## Supported Commands (115 )
6565
6666### Text Processing (31)
6767
6868` echo ` , ` printf ` , ` cat ` , ` head ` , ` tail ` , ` wc ` , ` sort ` , ` uniq ` , ` grep ` , ` sed ` , ` fold ` , ` expand ` , ` cut ` , ` paste ` , ` nl ` , ` comm ` , ` tr ` , ` tac ` , ` rev ` , ` shuf ` , ` factor ` , ` od ` , ` split ` , ` seq ` , ` tsort ` , ` expr ` , ` awk ` , ` diff ` , ` patch ` , ` cmp ` , ` ed `
6969
70- ### File Operations (19 )
70+ ### File Operations (22 )
7171
72- ` mkdir ` , ` rm ` , ` cp ` , ` mv ` , ` ls ` , ` find ` , ` ln ` , ` touch ` , ` stat ` , ` install ` , ` mktemp ` , ` truncate ` , ` du ` , ` df ` , ` readlink ` , ` realpath ` , ` rmdir ` , ` link ` , ` unlink `
72+ ` mkdir ` , ` rm ` , ` cp ` , ` mv ` , ` ls ` , ` find ` , ` ln ` , ` touch ` , ` stat ` , ` install ` , ` mktemp ` , ` truncate ` , ` du ` , ` df ` , ` readlink ` , ` realpath ` , ` rmdir ` , ` link ` , ` unlink ` , ` chmod ` , ` chown ` , ` chgrp `
7373
7474### Archive & Compression (6)
7575
@@ -87,9 +87,9 @@ echo "Hello, World!" # now calls cfbox via symlink
8787
8888` ps ` , ` top ` , ` kill ` , ` pgrep ` /` pkill ` , ` pidof ` , ` pstree ` , ` pmap ` , ` fuser ` , ` pwdx ` , ` sysctl ` , ` iostat ` , ` watch ` , ` nice ` , ` renice ` , ` timeout `
8989
90- ### Other (16 )
90+ ### Other (19 )
9191
92- ` true ` , ` false ` , ` yes ` , ` sleep ` , ` usleep ` , ` sync ` , ` nohup ` , ` cksum ` , ` md5sum ` , ` sum ` , ` hexdump ` , ` more ` , ` tee ` , ` init ` (PID 1 initramfs init system), ` mkfifo ` , ` mknod `
92+ ` true ` , ` false ` , ` yes ` , ` sleep ` , ` usleep ` , ` sync ` , ` nohup ` , ` cksum ` , ` md5sum ` , ` sum ` , ` hexdump ` , ` more ` , ` tee ` , ` init ` (PID 1 initramfs init system), ` mkfifo ` , ` mknod ` , ` clear ` , ` which ` , ` mountpoint `
9393
9494> All applets support ` --help ` / ` --version `
9595
@@ -137,33 +137,26 @@ cfbox/
137137│ └── ... # help.hpp, fs_util.hpp, escape.hpp, checksum.hpp
138138├── src/
139139│ ├── main.cpp # Dispatch entry
140- │ └── applets/ # 109 command implementations
140+ │ └── applets/ # 115 command implementations
141141├── tests/
142- │ ├── unit/ # GTest unit tests (331 cases)
142+ │ ├── unit/ # GTest unit tests (379 cases)
143143│ └── integration/ # Shell integration tests (54 scripts)
144144└── scripts/ # Build, test, install scripts
145145```
146146
147147## Next Steps
148148
149- Current release: v0.1.0. Upcoming work, in priority order:
149+ Current release: v0.2.0 (Phase 1 Wave 1 + Phase 1.5 code quality review complete). Now entering Phase 2: core command deepening.
150150
151- ### Phase 0: Production Pre-gates (In Progress)
151+ ### Phase 2: Core Command Deepening (In Progress)
152152
153- Before adding new applets, the following quality foundations must be completed :
153+ Deepening existing commands from ~ 30% to ~ 70% feature completeness, in batches by operational frequency :
154154
155- | Phase | Scope | Status |
156- | -------| -------| --------|
157- | ** 0A** Baseline Inventory | 109-applet catalog, maturity labels, profile assignments, doc drift fixes | Pending |
158- | ** 0B** Perf Baseline | Core benchmarks (cat/grep/sed/sort/find/tar/gzip/cp/tail), RSS regression thresholds | Pending |
159- | ** 0C** Size Budget | Per-profile size caps, new rescue/container profiles, per-applet delta tracking | Pending |
160- | ** 0D** IO Policy | Streaming audit (head/tail/sed/tr/md5sum etc.), large file/pipe/broken pipe tests | Pending |
161- | ** 0E** Safety Hardening | Unified numeric parsers, parser fuzz smoke, privileged command isolation tests | Pending |
162- | ** 0F** CI & Release | Tiered CI (sanitizer/benchmark/differential/cross/QEMU), reproducible builds, error format spec | Pending |
163-
164- ### Phase 1: Core System (After Phase 0)
165-
166- New system-level applets: ` chmod ` , ` chown ` , ` chgrp ` , ` mount ` , ` umount ` , ` chroot ` , ` dd ` , ` stty ` , plus deepening existing core commands.
155+ | Batch | Commands | Key Additions |
156+ | -------| ----------| ---------------|
157+ | Batch 1 | ` tail ` , ` cp ` , ` test ` , ` ls ` | tail -f, cp -a, full POSIX test, ls -R/--color |
158+ | Batch 2 | ` grep ` , ` tar ` , ` sed ` , ` sort ` | grep -A/-B/-C, tar -z/-v, sed -i, sort -k |
159+ | Batch 3 | ` find ` , ` sh ` , ` ps ` , ` df ` , ` du ` | find boolean expressions, sh case/heredoc/functions |
167160
168161> See [ document/todo/README.md] ( document/todo/README.md ) for the full roadmap.
169162
0 commit comments