BashhScriptKid/bash-framehead
LibraryA framework for Bash — a runtime standard library with a comprehensive (and frankly ridiculous) set of helpers using C++ styled pseudo namespaces
bash::framehead is a fairly opinionated Bash framework with pseudo-namespacing, carrying comprehensive (and ridiculous) set of helpers
No GitHub topics on this repo.
- Shell99.2%
- C0.4%
- CSS0.4%
- Makefile0.0%
1 Review
bash-framehead is a surprisingly ambitious Bash standard-library project, and the strongest part is that it treats Bash utilities as a real distributable library rather than a pile of snippets. The module::function convention is easy to scan, and the split between strict core modules in src/ and looser optional extensions in ext/ is a good design choice. I especially liked the compiler story in main.sh: users can build one sourceable file, compile extensions, or use compile_bare to emit only the reachable functions for a specific namespace such as string::trim or json::*. That makes the project more practical than “source this giant helper file” usually sounds.
The documentation is also much better than I expected for a young repo. The README explains the tradeoffs clearly, docs/guides/getting-started.md gives a real first script, docs/guides/contributing.md explains naming and module-boundary rules, and docs/api/ has per-function reference pages. The project also has a serious local test harness in tools/tester.sh, with about 1,500 test::... definitions, plus extension-level tests under directories like ext/json, ext/csv, ext/toml, ext/http-server, and ext/wav. That gives maintainers a decent foundation for refactoring such a wide API surface.
The main thing I would tighten before pushing this harder is release and documentation consistency. The README currently describes 18 modules and around 1,117 API definitions, while src/ contains 22 core shell files and docs/api/index.md says about 1,300 functions across 21 modules. The release asset is also named bash-framehead.sh, while the getting-started guide tells users to download bash_framehead.sh, so a copy-paste install may fail. I also did not see a .github directory or hosted CI, which matters for a Bash library because behavior depends heavily on Bash version, GNU/BSD utilities, Linux device files, and optional tools. A GitHub Actions matrix running the existing tester on Ubuntu, plus ShellCheck through dry_compile, would make the “tested” claim much easier to trust. Overall, this is a useful and distinctive project with real engineering effort behind it; the next adoption win is making the public surface feel as dependable as the codebase is ambitious.
Hello! Appreciate the review. The README is getting outdated at this point so I pretty much plan on getting rid of the statistics embedded in there (the one in direct `./main.sh stat <file>` or docs/ are way more accurate as I explicitly steer models regularly to do update chores in those areas)
Oh and the name is a dash instead of :: because filenames are strict. The releases are manual by me (I decide when to launch — it's simple to do anyway) And as API expands, it also needs cross OS testing (especially in kernel.sh) which I cannot figure out yet But the tester is already included in tools/ and can be run by `./main.sh test`
