Project Status
Current strengths, roadmap themes, compatibility policy, and long-term direction for Ferrocat.
Project Status
Ferrocat is an actively developed pre-1.0 Rust project. The goal is stable and product-facing: make translation catalogs easier to update, validate, audit, compile, and ship. The public API is already treated with care, but the project is still early enough to make deliberate changes when they improve long-term catalog behavior.
Current strengths
- translation catalogs that preserve source identity, translator context, comments, references, flags, plural entries, and obsolete entries
- deterministic parsing, serialization, merge, combine, and update workflows
- AI translation metadata for machine-generated entries, with compact PO/NDJSON storage and stale-metadata cleanup after text edits
- release-oriented catalog audit reports for completeness, stale entries, ICU issues, metadata conflicts, and visible fuzzy flags
- rich-message parsing and diagnostics for placeholders, formatters, plurals, selects, and tags
- normalized catalog APIs plus runtime compilation and requested-locale artifact generation
- conformance and benchmark infrastructure treated as product features
Compatibility policy
- MSRV:
1.88 - MSRV policy: support a Rust stable release roughly 9-12 months behind current stable when practical, rather than only the newest stable toolchain
- Semver: the public API is treated seriously, but carefully documented breaking changes may still happen before
1.0 - Documentation: README examples, rustdoc, and repository docs aim to stay aligned
Roadmap themes
- more catalog workflow APIs inspired by practical translation-maintenance jobs, especially filtering, attribute transforms, and structured completeness checks
- deeper runtime/catalog workflows on top of the compiled catalog layer
- broader cross-ecosystem tooling and bindings
- continued conformance growth and publication-grade benchmarking discipline
MessageFormat 2 is deliberately not a near-term roadmap item. Ferrocat tracks it as an important future standard, but the current implementation focus stays on ICU MessageFormat v1 parsing, authoring diagnostics, conformance, and runtime artifact validation because those solve the more immediate catalog problems without taking on a second transitional message syntax.
Why the project direction matters
Today Ferrocat is Rust-first. The longer-term goal is broader: a trustworthy translation core that can serve multiple ecosystems from one implementation, without forcing each host environment to re-implement catalog semantics, compiled key derivation, and locale resolution separately.