Features
The main capabilities and strengths of UCD.js
UCD.js is designed with modern developer experience and correctness in mind.
Type Safety
The entire monorepo is built with TypeScript. Zod schemas are generated directly from Unicode Character Database specifications, so when you work with UCD data, your editor knows the exact shapes and values to expect.
- Auto-completion for Unicode properties and version metadata.
- Strict runtime validation ensuring data integrity at the boundary.
- Self-documenting types across all packages.
Modular Architecture
UCD.js is split into focused packages - install only what you need.
- Just need validated shapes? Import
@ucdjs/schemas. - Building on top of UCD data programmatically? Use
@ucdjs/client. - Managing a local file cache? Use
@ucdjs/ucd-store.
Built-in Pipelines
Working with raw UCD files like UnicodeData.txt is notoriously difficult. The UCD.js pipeline engine transforms these legacy formats into structured route data and published outputs using a DAG (Directed Acyclic Graph) executor.
- Parallel execution for maximum throughput.
- Visual UI for debugging complex data dependencies.
- Extensible for custom transforms of UCD data.
Command Line Interface
The @ucdjs/cli gives you powerful tooling without writing any code. Manage local UCD stores, browse remote files, run pipelines, and generate TypeScript field definitions directly from your terminal.
File System Agnostic
UCD.js tooling can work with filesystem-style backends for:
- The local file system via
node:fs. - HTTP/HTTPS access to remote file APIs.
- In-memory implementations for testing and ephemeral workloads.