Files
unicode-tools/public/docs/ARCHITECTURE.md
T
2026-09-01 02:38:25 +02:00

1.4 KiB

Architecture

Unicode Tools is a relocatable static React application. Pure text operations live in src/unicode/model.ts, while catalog loading, search, character detail, Unihan lookup, and confusable analysis run through a dedicated module worker. Reusable encoding, scalar, grapheme, normalization and download primitives come from @add-ideas/toolbox-helpers.

The build contains compressed-by-HTTP JSON shards rather than a runtime database. A small manifest and dictionaries load first. The first catalog query loads assigned character shards, emoji and named sequences once in the worker; the roughly 5 MiB Unihan selection is fetched only after an explicit request. Results and displayed mapping lists are capped. The UI retains no database or persistent search history.

scripts/generate-unicode-data.mjs converts checksum-pinned Unicode 17.0 archives and text files into deterministic checked-in source data. It derives names, aliases, general categories, scripts, blocks, ages, bidi and case properties, emoji, named sequences, selected Unihan fields, and UTS #39 confusable mappings. Private-use and surrogate ranges are not expanded into synthetic catalog records.

Rendering, normalization and grapheme segmentation use the current browser and operating-system Unicode implementation, which can differ from the pinned catalog version. The interface discloses that boundary.