Byte-oriented scanning
PO parsing operates directly on byte sequences. No intermediate string allocations on the critical path.
Rust-native localization toolkit
Ferrocat brings Gettext PO workflows, ICU MessageFormat semantics, and JSON delivery into one Rust-native toolkit — with conformance evidence, benchmark discipline, and explicit architecture boundaries.
cargo add ferrocatWhy it's fast
Every hot path in Ferrocat is Rust-native, byte-oriented, and shaped by profiling — not by porting legacy abstractions into a faster language.
PO parsing operates directly on byte sequences. No intermediate string allocations on the critical path.
Zero-copy borrowed access for read-heavy workloads. Owned structures when you need to mutate.
Performance claims backed by real profiling sessions and published benchmark fixtures — not guesswork.
Three catalog modes
Stay close to traditional gettext catalogs and familiar msgid_plural workflows.
Keep translator-facing PO files while authoring richer ICU plural, select, and formatting messages.
JSON-friendly line-oriented storage for external systems and modern toolchains.
Proof, not vibes
Start here
Install, parse, serialize. Learn where the high-level catalog APIs fit.
OpenChoose between PO core, catalog workflows, and ICU helpers.
OpenBenchmark methodology, fixtures, and performance history.
OpenADRs and engineering notes behind semantic choices and hot paths.
Open