Palamedes Ecosystem
How Ferrocat and Palamedes fit together across catalog infrastructure, extraction, framework adapters, and runtime delivery.
Ferrocat And Palamedes
Palamedes is the OSS i18n framework for JavaScript and TypeScript applications. Ferrocat is the Rust-native catalog engine underneath it: the place where translation catalogs are parsed, updated, audited, validated, and compiled into runtime-ready data.
In plain terms: Palamedes helps application developers write and extract messages. Ferrocat makes the resulting catalog trustworthy.
Most people arrive from one of two directions:
- Application teams start with Palamedes because they need macros, extraction, framework adapters, runtime loading, and a clear authoring model.
- Tooling and platform teams start with Ferrocat because they need fast catalog parsing, deterministic updates, catalog QA, conformance evidence, and host-neutral runtime artifacts.
They are meant to connect. Palamedes owns the application integration. Ferrocat owns the catalog behavior that should not be reimplemented separately in every framework adapter.
Division Of Responsibility
| Layer | Palamedes | Ferrocat |
|---|---|---|
| Authoring | Macros, message collection, framework-facing developer experience | Stable message identity inputs and catalog semantics |
| Extraction | JavaScript/TypeScript transforms and host-aware source scanning | Adapter-ready catalog update inputs, placeholder hints, and semantic metadata validation |
| Catalog storage | Uses catalogs as part of the app workflow | PO, ICU-native PO, and NDJSON catalog modes |
| Catalog maintenance | CLI workflows and project conventions | Parse, serialize, merge, combine, update, audit, and validate |
| Runtime delivery | Framework adapters, bundler integration, client/server loading | Host-neutral compiled catalog artifacts and fallback semantics |
| Future scaling | Chunk-aware sidecars and app-specific delivery policy | Stable compiled IDs and locale-resolved payload generation |
Why The Split Matters
Keeping Ferrocat and Palamedes separate gives both projects cleaner boundaries.
Ferrocat can focus on catalog correctness, performance, conformance, and storage contracts without becoming a JavaScript framework plugin. Palamedes can focus on application ergonomics, framework integrations, transforms, runtime wiring, and bundler behavior without duplicating PO parsing or catalog semantics.
Semantic message metadata follows the same split. Palamedes can infer argument
types, enum values, tags, component names, and source origins from JS/TS code;
Ferrocat can normalize and validate those facts against msgid + msgctxt
without owning the JS/TS parser.
Catalog audit reports follow that boundary too. Palamedes can run audit in CI,
editors, or release commands and enrich it with project context; Ferrocat owns
the generic checks for completeness, stale target messages, ICU syntax, ICU
source/translation compatibility, semantic metadata conflicts, obsolete entries,
and visible fuzzy flags.
That split also makes the ecosystem easier to evaluate. If you need a full app-facing i18n framework, start with Palamedes. If you need catalog infrastructure, start with Ferrocat. If you need both, Palamedes is the natural application layer on top of Ferrocat.
Where To Go Next
- Palamedes repository for the JS/TS framework, packages, examples, and quickstarts
- Ferrocat API Overview for catalog APIs and runtime compilation
- Gettext Task Landscape for the catalog QA and audit direction
- Catalog Modes for PO, ICU-native PO, and NDJSON storage choices
- Bundler-Aware Message Sidecars for the future delivery model where Palamedes uses Ferrocat artifacts at chunk boundaries