ferrocat-po
Performance-first Gettext PO parsing, serialization, merge helpers, and high-level catalog workflows for ferrocat.
Add it with:
This crate covers both the low-level Gettext PO surface and the higher-level catalog layer.
At the catalog layer, it supports three explicit modes:
- classic Gettext catalog mode: Gettext PO + gettext-compatible plurals
- ICU-native Gettext PO mode: Gettext PO + ICU MessageFormat
- ICU-native NDJSON catalog mode: NDJSON catalog storage + ICU MessageFormat
NDJSON + gettext-compatible plurals is intentionally unsupported.
Use this crate when you want that surface directly:
parse_po/parse_po_borrowedfor raw Gettext PO parsingstringify_pofor Gettext PO serializationmerge_catalogfor lightweight gettext-style mergesparse_catalog,update_catalog, andNormalizedParsedCatalog::compilefor higher-level catalog workflows across Gettext PO and NDJSON storagecompile_catalog_artifactfor requested-locale runtime artifacts with fallback resolution and missing reportscompile_catalog_artifact_selectedfor selected compiled-ID subsets of those runtime artifacts
parse_po_borrowed keeps many fields as references into the input buffer, so it currently accepts LF-only content. If your source can contain CRLF or bare CR line endings, normalize it before calling parse_po_borrowed or use the owned parse_po parser.
If you want the umbrella dependency instead, use ferrocat.