0515 doc: fold internal bundled dependencies into owning libraries
All checks were successful
Source release / source-package (push) Successful in 1m23s

This commit is contained in:
Mario Fetka
2026-06-14 07:45:54 +00:00
parent 6386441449
commit abfd381fbc
7 changed files with 35 additions and 37 deletions

View File

@@ -19,13 +19,15 @@ which imported helpers are only low-level dependencies.
## Wrapped or vendored third-party libraries
These pages document third-party libraries that are useful project-facing
surfaces or long-lived wrapped dependencies. Some vendored packages are
intentionally documented under their owning Mars library instead of receiving a
standalone public page. For example, iniparser and Unicode tables are internal
`nwcore` details, and termbox2 is an internal `nwtui` backend.
- [nwowfat](nwowfat/README.md): bundled libowfat support library.
- [nwmatrixssl](nwmatrixssl/README.md): bundled MatrixSSL TLS implementation.
- [nwlibsodium](nwlibsodium/README.md): bundled libsodium cryptographic primitives.
- [nwiniparser](nwiniparser/README.md): bundled INI parser used below the Mars INI wrapper.
- [nwyyjson](nwyyjson/README.md): bundled yyjson parser.
- [nwtermbox2](nwtermbox2/README.md): bundled terminal UI backend.
- [nwunicode-tables](nwunicode-tables/README.md): generated/imported Unicode conversion tables.
## Naming rule

View File

@@ -30,6 +30,10 @@ These APIs are Mars-owned and may be used directly by Mars code:
- `ini.h`
- `spinlock.h`
`ini.h` is the public Mars INI API. The bundled iniparser sources are an
implementation detail below that wrapper and should not be called directly from
new Mars code.
## Imported NSS core runtime
The following NSS runtime groups are currently imported and built into
@@ -48,6 +52,9 @@ The following NSS runtime groups are currently imported and built into
- `library/debug`: NSS production debug output base.
- `library/misc`: registration, version display and histogram helpers.
- `library/guid`, `library/id`, `library/utc`, `library/unicode`.
- `third_party/unicodeTables`: table data used by the `nwcore` Unicode
conversion runtime. New code should use the `nwcore` Unicode APIs, not the
table generator or table data directly.
- `nss/lib`: NSS bitmap, CRC and hash support.
- `sharedsrc`: NSS shared source include fragments used by small translation
units such as `uni2utf.c` and `utf2uni.c`.
@@ -70,3 +77,16 @@ so.
NSS imports should keep original filenames and directory shape where practical.
Only minimal Linux-userspace fixes should be applied. Large fake wrappers should
not be added when a real NSS implementation exists.
## Internal bundled dependencies
The following bundled packages currently support `nwcore` but are not public
Mars library APIs:
- `third_party/iniparser`: backing implementation for the Mars `ini.h` wrapper.
- `third_party/unicodeTables`: generated/imported table data for the NSS/Mars
Unicode conversion layer.
Keep these dependencies hidden behind `nwcore` APIs. If another component needs
configuration parsing or Unicode conversion, extend/document the `nwcore` API
instead of reaching into the bundled package directly.

View File

@@ -1,8 +0,0 @@
# nwiniparser
`nwiniparser` documents the bundled iniparser source under
`third_party/iniparser`.
Mars code should normally use the `nwcore` INI wrapper from `ini.h`. Direct use
of iniparser should stay inside the wrapper or tightly scoped compatibility
code.

View File

@@ -1,7 +0,0 @@
# nwtermbox2
`nwtermbox2` documents the bundled termbox2 backend under `third_party/termbox2`.
Project tools should prefer `nwtui` as the public terminal abstraction.
Direct termbox2 calls should stay inside `nwtui` unless a lower-level terminal
backend feature is intentionally required.

View File

@@ -1,8 +1,13 @@
# nwtui
`nwtui` is the Mars terminal UI helper library. It provides the project-facing
terminal abstraction and uses the bundled `nwtermbox2` backend.
terminal abstraction and uses the bundled termbox2 backend.
Use `nwtui` from Mars tools that need terminal interaction. Do not call the
termbox2 backend directly from new higher-level code unless the `nwtui` API is
missing the required operation.
Use `nwtui` from Mars tools that need terminal interaction. Do not call
termbox2 directly from new higher-level code. If a terminal feature is missing,
extend the `nwtui` wrapper and keep backend details below that API.
## Internal backend
- `third_party/termbox2`: backend implementation detail for `nwtui`. It is not
a public Mars library API.

View File

@@ -1,8 +0,0 @@
# nwunicode-tables
`nwunicode-tables` documents the Unicode conversion table support under
`third_party/unicodeTables` and the NSS Unicode runtime imported into `nwcore`.
The table library provides data used by `nwcore` Unicode conversion helpers.
New Mars code should use the `nwcore` Unicode APIs instead of reading generated
tables directly.

View File

@@ -1,6 +0,0 @@
# nwyyjson
`nwyyjson` documents the bundled yyjson parser under `third_party/yyjson`.
Use the bundled target when JSON parsing is required. Higher-level Mars APIs
should hide raw yyjson details where possible.