[package]
name = "ferrocat"
version = "3.2.2"
edition.workspace = true
homepage.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true
description = "Rust-first gettext and ICU toolkit for PO parsing, catalog updates, and MessageFormat parsing."
documentation = "https://docs.rs/ferrocat"
readme = "crates/ferrocat/README.md"
include = [
"crates/ferrocat/src/**",
"crates/ferrocat/examples/**",
"crates/ferrocat/tests/**",
"crates/ferrocat/README.md",
"crates/ferrocat/CHANGELOG.md",
"LICENSE",
]
keywords = ["ferrocat", "gettext", "po", "icu", "i18n"]
categories = ["internationalization", "localization", "parser-implementations"]
[lib]
path = "crates/ferrocat/src/lib.rs"
[[example]]
name = "fcl_with_mt_metadata"
path = "crates/ferrocat/examples/fcl_with_mt_metadata.rs"
[[example]]
name = "merge_extracted_messages"
path = "crates/ferrocat/examples/merge_extracted_messages.rs"
[[example]]
name = "release_audit"
path = "crates/ferrocat/examples/release_audit.rs"
[[example]]
name = "runtime_compile"
path = "crates/ferrocat/examples/runtime_compile.rs"
[[test]]
name = "smoke"
path = "crates/ferrocat/tests/smoke.rs"
[features]
default = ["full"]
full = ["catalog", "serde"]
catalog = ["ferrocat-po/catalog", "ferrocat-icu/serde"]
compile = ["catalog", "ferrocat-po/compile"]
mt = ["catalog", "ferrocat-po/mt"]
plurals = ["catalog", "ferrocat-po/plurals"]
serde = ["ferrocat-po/serde", "ferrocat-icu/serde"]
[dependencies]
ferrocat-icu = { version = "3.2.2", path = "crates/ferrocat-icu", default-features = false }
ferrocat-po = { version = "3.2.2", path = "crates/ferrocat-po", default-features = false }
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[lints]
workspace = true
[workspace]
members = [
"crates/ferrocat-cli",
"crates/ferrocat-po",
"crates/ferrocat-icu",
"crates/ferrocat-conformance",
"crates/ferrocat-bench",
]
default-members = [
".",
"crates/ferrocat-cli",
"crates/ferrocat-po",
"crates/ferrocat-icu",
"crates/ferrocat-conformance",
"crates/ferrocat-bench",
]
exclude = ["fuzz"]
resolver = "2"
[workspace.package]
edition = "2024"
homepage = "https://github.com/sebastian-software/ferrocat"
license = "MIT"
repository = "https://github.com/sebastian-software/ferrocat"
rust-version = "1.93.0"
[workspace.lints.rust]
unsafe_op_in_unsafe_fn = "deny"
[workspace.lints.clippy]
dbg_macro = "deny"
todo = "deny"
unwrap_used = "deny"
needless_borrow = "deny"
redundant_clone = "deny"
[profile.release]
lto = "fat"
codegen-units = 1