Skip to content

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

LayerPalamedesFerrocat
AuthoringMacros, message collection, framework-facing developer experienceStable message identity inputs and catalog semantics
ExtractionJavaScript/TypeScript transforms and host-aware source scanningAdapter-ready catalog update inputs, placeholder hints, and semantic metadata validation
Catalog storageUses catalogs as part of the app workflowPO, ICU-native PO, and NDJSON catalog modes
Catalog maintenanceCLI workflows and project conventionsParse, serialize, merge, combine, update, audit, and validate
Runtime deliveryFramework adapters, bundler integration, client/server loadingHost-neutral compiled catalog artifacts and fallback semantics
Future scalingChunk-aware sidecars and app-specific delivery policyStable 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