lib-modules Public
Reference Libraries
This repo keeps tracked package code out of the umbrella tree, but it is still useful to study existing libraries before we start a new module.
Local comparison checkouts live under .refs/ and stay untracked. The tracked
part of the workflow is:
- this manifest
scripts/sync-refs.sh
Run the sync script from the umbrella root:
./scripts/sync-refs.sh
Current Read
The best next flagship still looks like fgof-keys.
Why:
- it builds directly on
fgof-termios,fgof-pty, andfgof-lineedit - terminal key handling is still undersupplied compared with process, fs, PTY, and raw terminal mode helpers
- it creates a cleaner foundation for future
fgof-screenand richer CLI or TUI work
The most interesting "crowded area we might still beat" is not another raw
ncurses binding. It is a higher-level screen or rendering library such as a
future fgof-screen.
Seed Reference Set
The first seed is intentionally small and focused. It is meant to support the
next few likely package decisions without turning .refs/ into a dumping
ground.
| Group | Repo | Why it matters |
|---|---|---|
stdlib |
fortran-lang/stdlib |
Standard-library baseline and overlap check |
terminal-ui |
interkosmos/fortran-ncurses |
Modern thin ncurses binding baseline |
terminal-ui |
urbanjost/M_ncurses |
Mature ncurses binding baseline |
system |
urbanjost/M_process |
Existing process wrapper comparison |
system |
urbanjost/M_system |
Existing POSIX and OS wrapper comparison |
system |
interkosmos/fortran-unix |
Thin POSIX binding comparison |
testing |
fortran-lang/test-drive |
Test utility baseline for fgof-proc-test |
testing |
everythingfunctional/vegetables |
Alternate test utility baseline |
What To Look For
When we compare against a deferred or already-served area, we should be asking:
- Is the existing package a thin binding or a genuinely ergonomic library?
- Does it have strong
fpmsupport and examples? - Does it expose low-level C semantics directly to users?
- Does it preserve literal strings and path data cleanly?
- Does it provide a stable, app-author-friendly API or mainly raw wrappers?
- Does it cover current compiler and CI expectations on macOS and Linux?
If the answer is "mostly thin wrappers," there is still room for an fgof-*
package that offers a better developer surface.
Shortlist After The First Wave
fgof-keysfgof-expectfgof-proc-testfgof-tempfgof-clipboardfgof-screen
Notes
.refs/is intentionally untracked.- Add new comparison targets to the sync script and this manifest together.
- If we decide to study a crowded area in depth, create a short audit note in
this
docs/directory instead of committing cloned source.
View source
| 1 | # Reference Libraries |
| 2 | |
| 3 | This repo keeps tracked package code out of the umbrella tree, but it is still |
| 4 | useful to study existing libraries before we start a new module. |
| 5 | |
| 6 | Local comparison checkouts live under `.refs/` and stay untracked. The tracked |
| 7 | part of the workflow is: |
| 8 | |
| 9 | - this manifest |
| 10 | - `scripts/sync-refs.sh` |
| 11 | |
| 12 | Run the sync script from the umbrella root: |
| 13 | |
| 14 | ```bash |
| 15 | ./scripts/sync-refs.sh |
| 16 | ``` |
| 17 | |
| 18 | ## Current Read |
| 19 | |
| 20 | The best next flagship still looks like `fgof-keys`. |
| 21 | |
| 22 | Why: |
| 23 | |
| 24 | - it builds directly on `fgof-termios`, `fgof-pty`, and `fgof-lineedit` |
| 25 | - terminal key handling is still undersupplied compared with process, fs, PTY, |
| 26 | and raw terminal mode helpers |
| 27 | - it creates a cleaner foundation for future `fgof-screen` and richer CLI or |
| 28 | TUI work |
| 29 | |
| 30 | The most interesting "crowded area we might still beat" is not another raw |
| 31 | ncurses binding. It is a higher-level screen or rendering library such as a |
| 32 | future `fgof-screen`. |
| 33 | |
| 34 | ## Seed Reference Set |
| 35 | |
| 36 | The first seed is intentionally small and focused. It is meant to support the |
| 37 | next few likely package decisions without turning `.refs/` into a dumping |
| 38 | ground. |
| 39 | |
| 40 | | Group | Repo | Why it matters | |
| 41 | | --- | --- | --- | |
| 42 | | `stdlib` | `fortran-lang/stdlib` | Standard-library baseline and overlap check | |
| 43 | | `terminal-ui` | `interkosmos/fortran-ncurses` | Modern thin ncurses binding baseline | |
| 44 | | `terminal-ui` | `urbanjost/M_ncurses` | Mature ncurses binding baseline | |
| 45 | | `system` | `urbanjost/M_process` | Existing process wrapper comparison | |
| 46 | | `system` | `urbanjost/M_system` | Existing POSIX and OS wrapper comparison | |
| 47 | | `system` | `interkosmos/fortran-unix` | Thin POSIX binding comparison | |
| 48 | | `testing` | `fortran-lang/test-drive` | Test utility baseline for `fgof-proc-test` | |
| 49 | | `testing` | `everythingfunctional/vegetables` | Alternate test utility baseline | |
| 50 | |
| 51 | ## What To Look For |
| 52 | |
| 53 | When we compare against a deferred or already-served area, we should be asking: |
| 54 | |
| 55 | - Is the existing package a thin binding or a genuinely ergonomic library? |
| 56 | - Does it have strong `fpm` support and examples? |
| 57 | - Does it expose low-level C semantics directly to users? |
| 58 | - Does it preserve literal strings and path data cleanly? |
| 59 | - Does it provide a stable, app-author-friendly API or mainly raw wrappers? |
| 60 | - Does it cover current compiler and CI expectations on macOS and Linux? |
| 61 | |
| 62 | If the answer is "mostly thin wrappers," there is still room for an `fgof-*` |
| 63 | package that offers a better developer surface. |
| 64 | |
| 65 | ## Shortlist After The First Wave |
| 66 | |
| 67 | - `fgof-keys` |
| 68 | - `fgof-expect` |
| 69 | - `fgof-proc-test` |
| 70 | - `fgof-temp` |
| 71 | - `fgof-clipboard` |
| 72 | - `fgof-screen` |
| 73 | |
| 74 | ## Notes |
| 75 | |
| 76 | - `.refs/` is intentionally untracked. |
| 77 | - Add new comparison targets to the sync script and this manifest together. |
| 78 | - If we decide to study a crowded area in depth, create a short audit note in |
| 79 | this `docs/` directory instead of committing cloned source. |